Nextrp [CPP] RU + Many GEOs Игра на карте России | NEXTRP

Использование Int13h с отладкой FreeDos

assembly x86 dos interrupt bios

130 просмотра

2 ответа

256 Репутация автора

Я работаю над сборкой, и в рамках школьного проекта я использую Int 13h 08 для чтения текущих параметров диска, но я что-то напутал. Я использую FreeDOS в VirtualBox и использую Debug.

Мой код:

MOV AH,08
MOV DL,80
INT 13
MOV AH,4C
INT 21

Независимо от части завершения ничего не возвращается / печатается, о чем я знаю. Нужно ли придумать какой-нибудь код печати? Я также не уверен, где любая информация, которая будет прочитана этой командой, будет

Мой мыслительный процесс заключается в том, что один из регистров будет содержать указатель после выполнения кода, и мне просто нужно начать чтение с этого указателя, чтобы увидеть информацию. Любая помощь будет оценена.

Автор: Ramrod Источник Размещён: 18.02.2013 07:52

Ответы (2)


1 плюс

5116 Репутация автора

Если вам нужна помощь в прерываниях, список прерываний Ральфа Браунса - ваш друг. (И да, вы должны придумать какой-то код печати самостоятельно, если вы хотите отобразить информацию на экране).

Автор: Joachim Rohde Размещён: 18.02.2013 09:00

0 плюса

314 Репутация автора

Вот пример сеанса использования вашего кода в lDebug (форк FreeDOS Debug). Я перебираю код до тех пор, пока не будет вызвано прерывание 13h.

-a
18BD:0100 mov ah, 8
18BD:0102 mov dl, 80
18BD:0104 int 13
18BD:0106
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18BD ES=18BD SS=18BD CS=18BD IP=0100 NV UP EI PL ZR NA PE NC
18BD:0100 B408              mov     ah, 08
-t
AX=0800 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18BD ES=18BD SS=18BD CS=18BD IP=0102 NV UP EI PL ZR NA PE NC
18BD:0102 B280              mov     dl, 80
-
AX=0800 BX=0000 CX=0000 DX=0080 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18BD ES=18BD SS=18BD CS=18BD IP=0104 NV UP EI PL ZR NA PE NC
18BD:0104 CD13              int     13
-
AX=0000 BX=0000 CX=FE3F DX=FE04 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18BD ES=18BD SS=18BD CS=18BD IP=0106 NV UP EI PL ZR NA PE NC
18BD:0106 0000              add     [bx+si], al                      DS:0000=CD
-

На этом этапе вы можете использовать запись списка прерываний, связанную другим ответом, чтобы определить, что означают результаты в регистрах: http://www.ctyme.com/intr/rb-0621.htm

Автор: ecm Размещён: 25.07.2019 01:48
Вопросы из категории :
32x32