Справочник программиста на персональном компьютере фирмы IBM. Вывод на терминал Страница 34. Примеры трех режимов записи
|
Страница 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 ;рисуем точку |