|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 30, 2004 12:09:27 · Поправил: Безпощадный даос Ув. коллеги! Если я вызываю командий int какое-то прерывание - это однозначно прерывание ДОС? Дело вот в чём... Код (часть): loc_get_ata_drive_IDs: call proc_clear_screen mov si, offset ID_Table_Header call proc_printmsg mov word ptr [Port], 1F0h mov byte ptr [Drive], 0 mov word ptr [ID_T_Port], "F1" ; 1F0h mov byte ptr [ID_T_Drive], "0" call proc_ata_identify_drive сmp byte ptr [Command], ATAPI_IDENTIFY_DRIVE je short loc_terminate mov byte ptr [Command], ATAPI_IDENTIFY_DRIVE mov si, offset Msg_PressAnyKey call proc_printmsg xor ah, ah int 16h <---!!!!!!!!!!!!!!!! jmp short loc_get_ata_drive_IDs loc_terminate: int 20h proc_start endp Команда int 16h - создание файла, но при этом я не вижу ни одного намёка на то, с каким именем созджавать фаил... Те процедуры, которые вызываются (proc_cler_screen, proc_printmsg, proc_ata_identify_drive) тоже не имеют намёка на создание файла... Может быть int 16h ещё что-то делает? |
|
|
Дата: Апр 30, 2004 12:36:47 Nos Если я вызываю командий int какое-то прерывание - это однозначно прерывание ДОС? Ай-яй-яй, как все запущено... Придется много читать. Если ты вызываешь прерывание командой int, управление передается по адресу, указанному в таблице прерываний. И даже это не однозначно. Обработчик 16 прерывания в ДОС имеет множество подфункций, - справочник в руки и вперед! P.S. Используй тег code |
|
|
Дата: Апр 30, 2004 12:58:35 Читать придётся много - согласен! С тем что инт16 имеет много подфункций, я тоже могу согласиться, НО подфункция указывается в АН, правильно? В приведённом коде единственное что делают с АН - исключающее или... и что? А на тему справочника - может ссылочку дадите на какой-нить модный (руссифицированный techyelp у меня есть)? |
|
|
Дата: Апр 30, 2004 14:51:04 Исключающее ИЛИ регистра с самим собой - так многие программисты обнуляют регистр, так что "XOR AH, AH" это то же что и "MOV AH,0". XOR AH, AH INT 16H Такой код будет забирать нажатый символ из буфера клавиатуры, а если никто не нажал клавишу - значит будет ожидание нажатия. |
|
|
Дата: Апр 30, 2004 17:45:04 · Поправил: hGoblin На тему справочника - вот: Interrupt List viewer by Ralf Brown. Там и вьюер, и список прерываний, довольно внушительный. |
|
|
Дата: Апр 30, 2004 23:34:35 hGoblin хелп крутой, но надо друзей по енглишь рулящих звать,а это опять пьянка! |
|
|
Дата: Май 1, 2004 07:58:15 Nos Нет. Прерывание 16h отвечает только за клавиатуру. Причем только функции 0 - 2 поддерживаются любой версией БИОС. Остальные функции требуют расширения. |
|
|
Дата: Май 3, 2004 18:26:00 Nos дааа, ну тыт тут и нарулил |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.082 |