Устройство печати (принтер) это очень полезное устройство.
Вам может не только потребоваться распечатать текст программы, но и передать на принтер выводимую информацию. Следующая версия программы выводит информацию вместо экрана на принтер:
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
Message DB ‘Привет!’,13,10,’$’
Message_Length EQO $ Message
.CODE
mov ax,@Data
mov dx,ax ; установить регистр DS таким
; образом, чтобы он указывал
mov ah,40h ; функция DOS вывода строки
; на устройство
mov bx,4 ; описатель принтера
mov cx,Message_Length ; число печатаемых символов
mov dx,OFFSET Message ; ссылка на «Привет!»
int 21h ; вывести «Привет!» принтер
mov ah,4ch ; функция DOS завершения
; программы
int 21h ; завершить программу
END
В данной версии программы функция DOS вывода строки на экран заменена на функцию DOS, которая передает информацию на выбранное устройство или в файл, в данном случае на принтер. Введите и запустите программу. Посмотрите, как она напечатает на принтере слово «Привет!». (Перед запуском программы не забудьте ее сохранить при завершении работы в редакторе. При этом программа будет сохранена в файле HELLO.ASM, а предыдущая версия программы будет потеряна.)
Вы можете модифицировать эту программу таким образом, чтобы она снова посылала выходные данные на экран, а не на устройство печати, заменив просто строку:
mov bx,4 ; описатель принтера
на строку:
mov bx,1 ; описатель стандартного вывода
Сделайте такое изменение, а затем снова выполните перекомпиляцию и перекомпоновку программы перед ее запуском. Запустив программу, вы увидите, что сообщение появится на экране, а последним символом будет графический символ перевода формата (кружок с крестиком внизу). Этот символ программа передает на принтер, чтобы вынудить его после вывода сообщения выполнить перевод страницы. Поскольку на экране страниц нет, он ничего не знает о переводе формата и просто выводит на экран символ из набора символов компьютера РС.
