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


         

Îáðàáîòêà ïðåðûâàíèé îò ïîñëåäîâàòåëüíîãî


 
                  Ôèã. 8. 17 Îáðàáîòêà ïðåðûâàíèé îò ïîñëåäîâàòåëüíîãî êàíàëà (íà÷àëî)
              0000      0040[                   DW   64 DUP (?)
                      ????
                                ]
              0080                        STACK      ENDS
 
              0000                        CODE SEGMENT
                                           ASSUME  CS:CODE
              0000      0049 R                  BUFFER_POINTER  DW     BUFFER
 
              0002                        SET_INTERRUPT    PROC FAR
              0002      2B C0                   SUB  AX,AX
              0004      8E D8                   MOV  DS,AX
                                           ASSUME  DS:ABS0  ; Àäðåñàöèÿ ïî ñåãìåíòíîìó ðåãèñòðó DS
                                                             ;  â îáëàñòü âåêòîðîâ ïðåðûâàíèé
                                     ;-----  Óñòàíîâêà ïðåðûâàíèÿ
              0006      C7 06 002C R 0024 R           MOV  ASYNC_INTERRUPT,offset INT_HANDLER
              000C      8C 0E 002C R                  MOV  ASYNC_INTERRUPT,CS     ; Çàíåñåíèå âåêòîðà ïðåðûâàíèÿ
 
              0010      BA 03F9                  MOV  DX,03F9H   ; Ðåãèñòð ðàçðåøåíèÿ ïðåðûâàíèé
              0013      B0 04                   MOV  AL,04H     ; Ïðåðûâàíèå ïî ïðèåìó èç êàíàëà
              0015      EE                      OUT  DX,AL
 
              0016      E4 21                   IN   AL,21H     ; Ðåãèñòð ìàñêè ïðåðûâàíèé 8259
              0018      24 F7                   AND  AL,0F7H    ; Çàíåñåíèå 0 â ðàçðÿä 3
              001A      E6 21                   OUT  21H,AL     ; Ïðåðûâàíèå íå ìàñêèðóåòñÿ
 
              001C      BA 03FC                  MOV  DX,3FCH    ; Ðåãèñòð óïðàâëåíèÿ ìîäåìîì
              001F      B0 08                   MOV  AL,08H     ; ðàçðÿä OUT2
              0021      EE                      OUT  DX,AL
 
              0022      EB FE             HERE:      JMP  HERE       ; Êîíåö çàäàíèÿ ðåæèìà ðàáîòû ïîñëåäîâàòåëü-

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