Поиск:

Ответ в темуСоздание новой темы Создание опроса
> int 19h, помогите плиз разобраться 
:(
    Опции темы
cornhulio
Дата 27.9.2002, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.9.2002
Где: Moscow

Репутация: нет
Всего: нет



Я ламак полный   :withstupid  помогите пожалуйста разобраться с int 19h
подкиньте плиз исходник того как перезагрузить комп....а то внизу чел написал чё-то я и непонял  :hmmm
PM MAIL   Вверх
Chingachguk
Дата 27.9.2002, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



А что ты хочешь от него ?
Вызываешь его - и все.

Применяется в коде типа mbr/boot, когда надо перезагрузить систему. Например, если код в Mbr не смог прочесть boot-сектор, то он может вызвать весь процесс загрузки по новой, но без переинициализации таблицы векторов прерываний.

int 19h - Это вызов BIOS.

Откуда ты хочешь вызвать перезагрузку и зачем ? Если ты напишешь подробнее, то ответ, возможно, будет более содержательным...


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
cornhulio
Дата 27.9.2002, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.9.2002
Где: Moscow

Репутация: нет
Всего: нет



:notify  точняк...ну короче мне нужно от этого прерывания...чтоб комп ребутнуть ну экзешник.... :withstupid
PM MAIL   Вверх
Chingachguk
Дата 27.9.2002, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Из экзешника где ? В дос ? Под виндами ? Под NT точно не будет работать...


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
cornhulio
Дата 28.9.2002, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.9.2002
Где: Moscow

Репутация: нет
Всего: нет



давай сначала под дос.....ненавижу винды =)
пингвин рулит =)
PM MAIL   Вверх
Chingachguk
Дата 28.9.2002, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Ну, графический дос-98 ничего...

Значит, так:

int 19h у меня не работает - программа виснет (в DOS). Видимо, это происходит из-за:

"INT 19 - SYSTEM - BOOTSTRAP LOADER
Desc: This interrupt reboots the system without clearing memory or restoring
 interrupt vectors.  Because interrupt vectors are preserved, this
 interrupt usually causes a system hang if any TSRs have hooked
 vectors from 00h through 1Ch, particularly INT 08..."

- т.е. он не переинициализирует таблицу векторов прерываний.

А вот как (в досе) можно безусловно перезагрузить комп:

.286
text segment byte public
assume cs:text,ds:text
org   100h
begin:
 mov  dx,offset Start
 call @@Message
 ; Restart processor
 mov  al,0FEh
 out  64h,al
@@Stop:
 jmp @@Stop ; Или hlt - ждать до прерывания
@@Exit:
 mov  dx,offset Finish
 call @@Message
 retn
@@Message:
 mov   ah,09h
 int   21h
 retn
Start db 'Start !',13,10,'$'
Finish db 'Finish !',13,10,'$'
Text Ends
end begin

При желании ты можешь сделать так, что после сброса процессора управление перейдет на ту точку в памяти, которое ты укажешь.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Гость_Андрей
Дата 11.5.2004, 14:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ой, люди, люди....такая интересная тема. Вообщем так...проблема такая мне надо заменить послебовательность alt+ctrl+del на alt+ctrl+RShift+del в досе плюс прога должна бвть резедентной на базе мультиплексного прерывания...плиз помогите очень надо.
  Вверх
Akina
Дата 11.5.2004, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Чтобы перегрузить комп в ДОСе - достаточно просто вот такого:

jmp far ptr 0FFFFh:0

Чтобы изменить под ДОСом последовательность alt+ctrl+del на alt+ctrl+RShift+del - надо сделать свой клавиатурный обработчик int 9. Резидентный есссно... а уж мультиплексное прерывание (2Fh) тут вообще не при чем...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Jin X
Дата 15.5.2004, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 5.3.2004

Репутация: 1
Всего: 1



Перезагрузка

Под DOS:
Код
db 0EAh  ; jmp far
dd 0F000FFF0h

Код
mov al,0FEh
out 64h,al

Под DOS/Win9X,ME:
Код
mov dx,0CF9h
mov al,0FFh
out dx,al

Под WinNT/2K/XP: никак sad.gif

p.s.int 19h хоть и настроен в современных компах на jmp far F000:FFF0, но лучше его не использовать!
p.p.s. Перед перезагрузкой советую сделать сброс дисковых буферов (т.е. незаписанный software-кэш дозаписывается на диск):
Код
mov ah,0Dh
int 21h

--------------------
Бойся своей мечты, ибо она осуществима!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0592 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.