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



         

ГЛАВА 8. Экранные операции I: Основные свойства - часть 4


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

ВЫВОД НА ЭКРАН: БАЗОВАЯ ВЕРСИЯ DOS ------------------------------------------------------------

Вывод на экран в базовой версии DOS требует определения текстового сообщения в области данных, установки в регистре AH значения 09 (вызов функциии DOS) и указания команды DOS INT 21H. В процессе выполнения операции конец сообщения определяется по oграничителю ($), как это показано ниже:

NAMPRMP DB 'Имя покупателя?','$' . . MOV AH,09 ;Запрос вывода на экран LEA DX,NAMPRMP ;Загрузка адреса сообщ. INT 21H ;Вызов DOS

Знак ограничителя "$" можно кодировать непосредственно после cимвольной строки (как показано в примере), внутри строки: 'Имя покупателя?$', или в следующем операторе DB '$'. Используя данную операцию, нельзя вывести на экран символ доллара "$". Кроме того, если знак доллара будет отсутство вать в коце строки, то на экран будут выводиться все последующие символы, пока знак "$" не встретиться в памяти. Команда LEA загружает адрес области NAMPRMP в регистр DX для передачи в DOS адреса выводимой информации. Адрес поля NAMPRMP, загружаемый в DX по команде LEA, является oтноси тельным, поэтому для вычисления абсолютного адреса данных DOS складывает значения регистров DS и DX (DS:DX).

ПРОГРАММА: ВЫВОД НА ЭКРАН НАБОРА СИМВОЛОВ КОДА ASCII ------------------------------------------------------------

Большинство из 256 кодов ASCII имеют символьное представ ление, и могут быть выведены на экран. Шест. коды 00 и FF не имеют символов и выводятся на экран в виде пробелов, хотя символ пробела имеет в ASCII шест. код 20. На рис. 8.1 показана COM-программа, которая выводит на экран полный набор символов кода ASCII. Программа вызывает три процедуры; B10CLR, C10SET и D10DISP. Процедура B10CLR очищает экран, а процедура C10SET устанавливает курсор в положение 00,00. Процедура D10DISP выводит содержимое поля CTR, которое в начале инициализировано значением 00 и затем yвеличивается на 1 при каждом выводе на экран, пока не достигнет шест. значения FF.




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