ïðîâåðÿåò ñîñòîÿíèå, ÷òîáû âûâîäèòü ñëåäóþùèé
ïðîâåðÿåò ñîñòîÿíèå, ÷òîáû âûâîäèòü ñëåäóþùèé ñèìâîë èìåííî òîãäà,
êîãäà ïðèíòåð ãîòîâ åãî ïðèíÿòü. Áèò 7 ñîñòîÿíèÿ ïîðòà ââîäà
ïîêàçûâàåò çàíÿòîñòü ïðèíòåðà. Åñëè ýòîò áèò ñîäåðæèò 1, ïå÷àòàþùåå
óñòðîéñòâî ãîòîâî ïðèíèìàòü ñëåäóþùèé ñèìâîë äëÿ ïå÷àòè. Â
ïðîòèâíîì ñëó÷àå ïðîãðàììà äîëæíà ïîäîæäàòü. Îñòàëüíûå 4 ââîäíûõ
áèòà ýòîãî ïîðòà îòðàæàþò âîçìîæíûå îøèáêè íà ïå÷àòàþùåì
óñòðîéñòâå, íàïðèìåð, îòñóòñòâèå áóìàãè. Íàø ïðèìåð íå êîíòðîëèðóåò
ýòè ñèòóàöèè. Òåõíè÷åñêîå îïèñàíèå ñîäåðæèò ñòðóêòóðû ââîäíûõ è
âûâîäíûõ ïîðòîâ ïëàòû àäàïòåðà ïå÷àòàþùåãî óñòðîéñòâà.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:05:39
Ôèã. 8.15 Âûâîä íà ïðèíòåð Page 1-1
PAGE ,132
TITLE Ôèã. 8.15 Âûâîä íà ïðèíòåð
0000 STACK SEGMENT STACK
0000 0040[ DW 64 DUP (?)
????
]
0080 STACK ENDS
= 0378 BASE EQU 378H
0000 CODE SEGMENT
ASSUME CS:CODE
0000 94 A8 A3 2E 20 38 2E MSG DB 'Ôèã. 8.15', 13, 10, '$'
31 35 0D 0A 24
000C MAIN PROC FAR
000C 1E PUSH DS ; Àäðåñ âîçâðàòà
000D 2B C0 SUB AX, AX
000F 50 PUSH AX
0010 8D 1E 0000 R LEA BX, MSG
0014 PRINT_LOOP:
0014 2E: 8A 07 MOV AL, CS:[BX] ; Âûáîð ñèìâîëà èç ñòðîêè äëÿ âûâîäà
0017 3C 24 CMP AL, '$' ; Êîíåö ñòðîêè?
Ñîäåðæàíèå Íàçàä Âïåðåä