Предыдущий раздел | ВЫВОД СИМВОЛОВ НА ЭКРАН | Следующий раздел |
Машинная команда “int 20h” сообщает DOS о том, что мы хотим выйти из нашей программы, и чтобы управление опять вернулось в DOS. В нашем случае эта команда вернет управление в Debug, так как мы запускаем нашу программу не непосредственно из DOS, а из Debug.
В в е д и т е команду 20CDh, начиная с адреса l00h, а затем проделайте следующее (не забудьте проверить команду "int 20h" с помощью команды R Debug):
_G 102
Program terminated normally
_R
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=3970 ES=3970 SS=3970 CS=3970 IP=0100 NV UP DI PL NZ NA PO NC
3970:0100 CD20 INT 20
_G
Program terminated normally
_R
Результат команды G аналогичен результату команды “G 102”. Любая из этих команд Debug выполняет всю программу (сейчас она состоит всего из одной команды – “int 20h”) и затем возвращается к началу. Когда мы начали выполнение, IP был установлен в l00h, т.к. мы заново запустили Debug. После выполнения G IP опять содержит l00h.
Мы можем поместить машинную команду “int 20h” в конец любой программы для того, чтобы красиво передать управление DOS (или Debug). Для начала поместим ее после команды “int 21h” и получим программу из двух команд, выполняющую вывод символа на экран. Для этого начиная с адреса l00h в в е д и т е одну за другой две машинные команды – 21CDh и 20CDh.
Когда у нас была только одна машинная команда, то мы могли "пролистать" ее командой R Debug, но теперь у нас две команды. Чтобы увидеть их, воспользуемся командой Debug U(от "Unassemble" – разассемблирование):
_U 100
3970:0100 CD21 INТ 21
3970:0102 CD20 INT 20
Далее идут еще 12 строк листинга, содержащие команды, оставшиеся в памяти от предыдущих программ.
П о м е с т и т е в регистр АH значение 02h, а в регистр DL код любого символа, например код символа F – 46h. Затем введите команду G, чтобы увидеть символ на экране:
_G
F
Program terminated normally
До этого мы вводили команды программы в виде чисел, например 21CDh. Но это слишком тяжелая работа и избавиться от нее помогает команда Debug А (от "Аssemble" – ассемблирование). Эта команда помогает вводить мнемонические (человекочитаемые) машинные команды. Применим команду А для ввода нашей программы:
_А 100
3970:0100 INT 21
3970:0102 INT 20
3970:0104
Команда A сообщает Debug о том, что мы хотим ввести машинные команды в мнемонической форме, а число 100 в команде означает, что ввод машинных команд начинается с ячейки l00h.
Предыдущий раздел | В начало | Следующий раздел |