⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sy9-8259.asm

📁 汇编语言接口技术硬件实验中
💻 ASM
字号:
        DATA  SEGMENT
        MESS  DB        'TPC pci card Interrupt',13,10,'$'
        DATA  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE, DS:DATA
      START:
              MOV       AX,DATA
              MOV       DS,AX

              CLI                   ;关中断

              MOV       DX,IOPORT_CENT+68H      ;设置TPC卡中断使能
              IN        AX,DX
              OR        AX,0900H
              OUT       DX,AX

              MOV       AL,71H      ;保存原中断向量
              MOV       AH,35H
              INT       21H
              PUSH      ES
              PUSH      BX

              MOV       DX,OFFSET INTT          ;设置新中断向量
              MOV       AX,SEG INTT
              MOV       DS,AX
              MOV       AL,71H
              MOV       AH,25H
              INT       21H

              IN        AL,21H      ;读出IMR
              ;AND       AL,71H
              AND       AL,0FBH
              OUT       21H,AL
              IN        AL,0A1H
              AND       AL,0FDH
              OUT       0A1H,AL

              ;OUT       21H,AL      ;设置新IMR内容

              ;LEA       DX,MESS     ;显示提示信息
              ;MOV       AH,09H
              ;INT       21H

              STI

              MOV       CX,10
     START1:
              MOV       AH,01H
              INT       16H
              JNZ       EXIT
              CMP       CX,0
              JZ        EXIT
              JMP       START1

              ;CMP       COUNTER,0
              ;JG        START1      ;中断10次退出
              ;CLI                   ;关中断

       EXIT:
              IN        AL,21H
              OR        AL,04H
              OUT       21H,AL
              IN        AL,0A1H
              OR        AL,02H
              OUT       0A1H,AL

              ;POP       AX
              ;OUT       21H ,AL     ;恢复IMR

              POP       BX          ;恢复原中断
              POP       ES
              MOV       AX,ES
              MOV       DS,AX
              MOV       DX,BX
              MOV       AX,2571H
              INT       21H

              MOV       DX,IOPORT_CENT+68H      ;关闭9054的中断
              IN        AX,DX
              AND       AX,0F7FFH
              OUT       DX,AX

              MOV       AH,4CH
              INT       21H

       INTT:
              MOV       AX,DATA
              MOV       DS,AX
              MOV       DX,OFFSET MESS
              MOV       AH,09H
              INT       21H

              DEC       CX

              MOV       AL,20H
              OUT       0A0H,AL
              OUT       20H,AL

              IRET

        CODE  ENDS
              END       START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -