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


              

Ýòà ïîäïðîãðàììà óïðàâëÿåò âûçîâîì ïðåðûâàíèÿ


              0154      E6 40                   OUT  40H,AL
              0156      FB                      STI
              0157      8D 16 28FE R                  LEA  DX,BUFFER_END    ; Çàíåñåíèå àäðåñà êîíöà ïðîãðàììû
              015B      CD 27                   INT  27H        ; Âûõîä ñ ñîõðàíåíèåì ïðîãðàììû â ïàìÿòè
 
              015D      00                TIMER_COUNT      DB   0
              015E      01EE R                  BUFFER_HEAD      DW   BUFFER_START
              0160      01EE R                  BUFFER_TAIL      DW   BUFFER_START
 
                                     ;-----  Ýòà ïîäïðîãðàììà óïðàâëÿåò âûçîâîì ïðåðûâàíèÿ 17h
 
              0162                        PRINT_HANDLER    PROC FAR
                                           ASSUME  CS:CODE,DS:nothing,ES:nothing
              0162      0A E4                   OR   AH,AH
              0164      74 05                   JZ   BUFFER_CHARACTER ; Ïðîâåðêà íà ôóíêöèþ âûâîäà ñèìâîëà
              0166      2E: FF 2E 0103 R        JMP  PRINT_VECTOR           ; Ïåðåõîä íà ñòàíäàðòíûé îáðàáîò÷èê
                                                                   ;  ïðåðûâàíèÿ 17h
              016B                        BUFFER_CHARACTER:
              016B      FB                      STI
              016C      53                      PUSH BX
              016D      51                      PUSH CX
              016E      56                      PUSH SI
              016F      2B C9                   SUB  CX,CX            ; Ñ÷åò÷èê îòñ÷åòîâ òàéìåðà
              0171                        PRINT_LOOP:
              0171      2E: 8B 1E 0160 R        MOV  BX,BUFFER_TAIL ; Âûáîðêà àäðåñà êîíöà áóôåðà
              0176      8B F3                   MOV  SI,BX
              0178      E8 01E2 R               CALL ADVANCE_POINTER ; Ïåðåìåùåíèå óêàçàòåëÿ íà ñëåäóþùèé áàéò
              017B      2E: 3B 1E 015E R        CMP  BX,BUFFER_HEAD ; Ïðîâåðêà íà íàëè÷èå ìåñòà â áóôåðå
              0180      74 0E                   JE   BUFFER_FULL      ; Íåò ìåñòà,îæèäàåòñÿ ïîêà îíî ïîÿâèòñÿ

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





Forekc.ru
Ðåôåðàòû, äèïëîìû, êóðñîâûå, âûïóñêíûå è êâàëèôèêàöèîííûå ðàáîòû, äèññåðòàöèè, ó÷åáíèêè, ó÷åáíûå ïîñîáèÿ, ëåêöèè, ìåòîäè÷åñêèå ïîñîáèÿ è ðåêîìåíäàöèè, ïðîãðàììû è êóðñû îáó÷åíèÿ, ïóáëèêàöèè èç ïðîôèëüíûõ èçäàíèé