Ассемблер и программирование для IBM PC



       

ГЛАВА 19. ПЕЧАТЬ - часть 3


HEADG DB 'Industrial Bicycle Mfrs', 0DH, 0AH ... MOV AH,40H ; Запрос печати MOV BX,04 ; Файловый номер принтера MOV CX,25 ; 25 символов LEA DX,HEADG ; Область вывода INT 21H ; Вызов DOS

Ассемблер для IBM PC. Глава 19 3

В случае ошибки операция устанавливает флаг CF и возвраща ет код ошибки в регистре AX.

ПРОГРАММА: ПОСТРАНИЧНАЯ ПЕЧАТЬ С ЗАГОЛОВКАМИ ------------------------------------------------------------ Программа, приведенная на рис.19.1, аналогична программе на рис.9.1, за исключением того, что после ввода имен с клавиатуры выводит их не на экран, а на печатающее устрой ство. Каждая напечатанная страница содержит заголовок и через двойной интервал список введенных имен в следующем виде:

List of Employee Names Page 01 Clancy Alderson Ianet Brown David Christie ...

Программа подсчитывает число напечатанных строк и при дос тижении конца страницы выполняет прогон до начала следующей страницы. В программе имеются процедуры:

D10INPT Выдает на экран запрос и затем вводит имя с кла виатуры. E10PRNT Выводит имя на печатающее устройство (длина име ни берется из вводного списка параметров); в конце страницы вызывает процедуру M10PAGE. M10PAGE Выполняет прогон на новую страницу, печатает за головок, сбрасывает счетчик строк и увели чивает счетчик страниц на единицу. P100UT Общая подпрограмма для непосредственного вывода на печатающее устройство.

В начале выполнения необходимо напечатать заголовок, но не делать перед этим перевод страницы. Поэтому процедура M10PAGE обходит перевод страницы, если счетчик PAGECTR содержит 01 (начальное значение). Поле PAGECTR определено как PAGECTR DB '01'

В начале выполнения необходимо напечатать заголовок, но не делать перед этим перевод страницы. Поэтому процедура M10PAGE обходит перевод страницы, если счетчик PAGECTR содержит 01 (начальное значение). Поле PAGECTR определено как PAGECTR DB '01'

В результате будет сгенерировано число в ASCII коде - шест. 3031. Процедура M10PAGE увеличивает счетчик PAGECTR на 1 так, что значение становится последовательно 3032, 3033 и т.д. Эти значения корректны до 3039, далее следует 303A, что будет распечатано, как двоеточие (:). Поэтому, если в правом байте поля PAGECTR появляется шест.3A, то это значение




Содержание  Назад  Вперед