Видеооперации с прерыванием 21H DOS

l Вывод символа на экран дисплея: AH = 2 или AH = 6 и DL <> 0FFh. В регистре DL должен быть ASCII-код символа. Пример фрагмента программы (вывод символа «C»):

mov AH, 6

mov DL, 43H; 43H — это ASCII-код символа C

int 21H

l Вывод строки символов: AH = 9 (чаще всего используемая функция). В регистрах DS:DX должен находиться начальный адрес строки символов, которая обязана заканчиваться символом $. Пример фрагмента программы (отображение текста 'вывод строки символов$'):

Text db 'вывод строки символов$'

mov AH, 9

mov DX, offset text; это адрес выводимой строки

int 21H

l Ввод/вывод из файла через логический номер. Стандартные файловые логические номера определяют тип и устройство ввода-вывода:

l 0 — ввод с клавиатуры;

l 1 — вывод на экран дисплея;

l 2 — вывод на экран сообщения об ошибке;

l 3 — ввод-вывод на внешнее устройство;

l 4 — вывод на печать.

Для ввода предназначена функция AH = 3Fh прерывания 21H, для вывода служит функция AH = 40h прерывания 21H. В регистр CX предварительно заносится число вводимых-выводимых байтов, а в регистр DX записывается начальный адрес поля памяти для ввода-вывода. В случае успешного завершения процедуры ввода-вывода обнуляется флаг переноса CF, а в регистре AX возвращается количество фактически переданных байтов. При неудачной операции флаг CF устанавливается в 1, а в регистр AX заносится код ошибки. Приведенный ниже пример содержит фрагмент программы для вывода на экран текстового файла Text, содержащего 50 байтов.

text db 50 dup(' ')

mov AH, 40H

mov BX, 1; указание устройства вывода

mov CX, 50;указание числа выводимых байт

mov DX, offset text; указание начального адреса

; поля памяти, содержащего текст

int 21H


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: