Assembler äëÿ íà÷èíàþùèõ


         

ïðîâåðÿåò ñîñòîÿíèå, ÷òîáû âûâîäèòü ñëåäóþùèé


    ïðîâåðÿåò ñîñòîÿíèå, ÷òîáû âûâîäèòü ñëåäóþùèé ñèìâîë èìåííî òîãäà,
    êîãäà ïðèíòåð ãîòîâ åãî ïðèíÿòü. Áèò 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, '$'         ; Êîíåö ñòðîêè?

Ñîäåðæàíèå  Íàçàä  Âïåðåä