Ассемблер и программирование для IBM PC


          

Ассемблер для IBM PC. Глава


Ассемблер для IBM PC. Глава 8 181
Следующие команды иллюстрируют операцию вывода на экран в расширенной версии DOS:
DISAREA DB 20 DUP(' ') ;Область данных ... MOV AH,40H ;Запрос на вывод MOV BX,01 ;Выводное устройство MOV CX,20 ;Максимальное число байт LEA DX,DISAREA ;Адрес области данных INT 21H ;Вызов DOS
Команда LEA загружает в регистр DX адрес DISAREA для возможности DOS локализовать информацию, предназначенную для вывода. В результате успешной операции флаг переноса очищает ся (это можно проверить), а в регистре AX устанавливается число выведенных символов. Ошибка в данной операции может произойти, если yстановлен неправильный файловый номер. В этом случае будет установлен флаг CF и код ошибки (в данном случае 6) в регистре AX. Поскольку регистр AX может содержать или длину, или код ошибки, то единственный способ определить состояние ошибки - проверить флаг CF.
Упражнение: Вывод на экран
Воспользуемся отладчиком DEBUG для проверки внутренних эффектов прерывания. Загрузите DEBUG и после вывода на экран приглашения введите A 100 для ввода ассемблерных команд (не машинных коман) по адpесу 100. Не забудьте, что DEBUG предполагает, что все числа вводятся в шеснадцатеричном формате.
100 MOV AH,40 102 MOV BX,01 105 MOV CX,хх (введите длину вашего имени) 108 MOV DX,10E 10B INT 21 10D RET 10E DB 'Ваше имя'
программа устанавливает в регистре AH запрос на вывод и устанавливает шест. значение 10F в регистре DX - адрес DB, содержащей ваше имя в конце программы. Когда вы наберете все команды, нажмите еще раз Return. С помощью команды U (U 100,10D) дисассемблируйте программу для проверки. Затем используйте команды R и T для трассиров ки выполнения. При выполнении команды INT 21H отладчик перейдет в BIOS, поэтому при достижении адреса 10B введите команду GO (G 10D) для перехода к команде RET. Ваше имя будет выведено на экран. С помощью команды Q вернитесь в DOS.
ВВОД С КЛАВИАТУРЫ: РАСШИРЕННЫЙ DOS ------------------------------------------------------------
Ассемблер для IBM PC. Глава 8 182

Содержание  Назад  Вперед