Справочник программиста на персональном компьютере фирмы IBM. Вывод на терминал - Примеры трех режимов записи

ОГЛАВЛЕНИЕ



   И, наконец, примеры трех режимов записи:

Режим записи 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       ;рисуем точку