Справочник программиста на персональном компьютере фирмы IBM. Вывод на терминал - Примеры трех режимов записи
ОГЛАВЛЕНИЕ
Страница 34 из 47
И, наконец, примеры трех режимов записи:
Режим записи 0:
;---рисуем красную точку в левом верхнем углу экрана
MOV AX,0A000H ;указываем на видеобуфер
MOV ES,AX ;
MOV BX,0 ;указываем на первый байт буфера
;---маскируем все биты, кроме седьмого
MOV DX,3CEH ;указываем на адресный регистр
MOV AL,8 ;номер регистра
OUT DX,AL ;посылаем его
INC DX ;указываем на регистр данных
MOV AL,10000000B ;маска
OUT DX,AL ;посылаем данные
;---чистим текущее содержимое задвижки
MOV AL,ES:[BX] ;читаем содержимое в задвижку
MOV AL,0 ;готовимся к очистке
MOV ES:[BX],AL ;чистим задвижку
;---установка регистра маски карты для красного цвета
MOV DX,3C4H ;указываем на адресный регистр
MOV AL,2 ;индекс регистра маски карты
OUT DX,AL ;установка адреса
INC DX ;указываем на регистр данных
MOV AL,4 ;код цвета
OUT DX,AL ;посылаем код цвета
;---рисуем точку
MOV AL,0FFH ;любое значение с установленным 7 битом
MOV ES:[BX],AL ;выводим точку
Режим записи 1:
;---копируем строку в следующую строку
MOV CX,80 ;число байтов в строке
MOV BX,0 ;начинаем с 1-го байта буфера
MOV AX,0A000H ;адрес буфера
MOV ES,AX ;
NEXT_BYTE: MOV AL,ES:[BX] ;заполняем задвижку
MOV ES:[BX]+80,AL ;выводим в следующую строку
INC BX ;переходим к следующему байту
LOOP NEXT_BYTE ;
Режим записи 2:
;---рисуем красную точку в левом верхнем углу экрана
MOV AX,0A000H ;адрес буфера
MOV ES,AX ;
MOV BX,0 ;указываем на первый байт буфера
;---установка регистра маски битов
MOV DX,3CEH ;указываем на адресный регистр
MOV AL,8 ;регистр маски битов
OUT DX,AL ;адресуем регистр
INC DX ;указываем на регистр данных
MOV AL,10000000B ;маскируем все биты, кроме 7-го
OUT DX,AL ;посылаем данные
;---рисуем красную точку
MOV AL,ES:[BX] ;заполняем регистры задвижки
MOV AL,4 ;красный цвет
MOV ES:[BX],AL ;рисуем точку