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


         

Âðåìÿ ñóòîê - ÷àñòü 4


             0021  75 FA                        JNZ     LOW_TO_HIGH     ; Öèêë: ñèãíàë òàéìåðà 2 íà
                                                            ;  íèæíåì óðîâíå
             0023                   WAIT_HIGH:
             0023  E4 62                        IN      AL, 62H         ; Ïðîâåðêà ðàçðÿäà òàéìåðà 2
             0025  A8 20                        TEST    AL, 20H
             0027  74 FA                        JZ      WAIT_HIGH       ; Öèêë: ñèãíàë òàéìåðà 2 íà
                                                            ;  âåðõíåì óðîâíå
             0029  B0 00                        MOV     AL, 0           ; Ïîñëàòü êîìàíäó â ðåãèñòð óïðàâëåíèÿ òàé-
             002B  E6 43                       OUT     43H, AL         ;  ìåðîì 2, êîòîðàÿ "çàìîðàæèâàåò" òàéìåð 2
             002D  90                     NOP
             002E  90                     NOP               ; Çàäåðæêà, íåîáõîäèìàÿ äëÿ 8253
             002F  E4 40                        IN      AL, 40H         ; ×òåíèå ìëàäøåãî áàéòà ñ÷åò÷èêà
             0031  8A E0                        MOV     AH, AL
             0033  90                     NOP
             0034  E4 40                        IN      AL, 40H         ; ×òåíèå ñòàðøåãî áàéòà ñ÷åò÷èêà
             0036  86 E0                        XCHG    AH, AL
             0038  C3                     RET               ; Âîçâðàùåíèå çíà÷åíèÿ â AX
             0039                   LOW_TO_HIGH     ENDP
             0039                   CODE    ENDS
                                          END
 
            Ôèã. 8.5 Ñèñòåìíûé òàéìåð (ïðîäîëæåíèå)
 
    ÷àñòè ïðîãðàììû ýòîò êàíàë òàéìåðà çàãðóæàåòñÿ èçâåñòíûì çíà÷åíèåì.
    Çäåñü ìû ïðîèçâîëüíî âûáðàëè ÷èñëî 500H. Îáðàòèòå âíèìàíèå, ÷òî ýòà
    ÷àñòü ïðîãðàììû èäåíòè÷íà ñïîñîáó ãåíåðàöèè çâóêîâ ñ ïîìîùüþ âòîãî
    êàíàëà òàéìåðà.
 
      Íàøà ïðîãðàììà âûçûâàåò ïîäïðîãðàììó LOW_TO_HIGH, êîòîðàÿ
    âîçâðàùàåò çíà÷åíèå òàéìåðà â òîò ìîìåíò, êîãäà íà âûõîäå êàíàëà 2



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