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

📄 8259中断控制.asm

📁 该程序使每次CPU响应外部中断IRQ3时显示字符串“THIS IS A 8259A INTERRUPT!”。中断10次后
💻 ASM
字号:
;******************************************;
;   copyright@vivian_chan                  ;
;   chen_xi 2006                           ;
;                                          ;
;******************************************;


data segment
    msg db ' THIS IS A 8259A INTERRUPT!',0ah,0dh,'$'
    p21 db ?
    p20 db ?
data ends
code segment
     assume cs:code,ds:data
start: mov ax,data                  ;数据段初始化
       mov ds,ax
       cli                       ;关中断
       mov ah,35h
       mov al,0bh                ;送IRQ3类型码0bH
       int 21h                   ;保存系统原中断向量
       push bx                   ;保护现场
       push es
       push ds
       mov bx,10                 ;设置中断次数
       mov ax,seg useint           ;保存新中断向量
       mov ds,ax
       mov dx,offset useint
       mov ah,25h                ;DOS功能调用
       mov al,0bh                ;送IRQ3类型码0bH
       int 21h
       pop ds
       in al,21h
       mov p21,al
       mov al,0f7h                ;开IRQ3中断源
       out 21h,al
       in al,20h
       mov p20,al
       out  20h,al
       sti
  next:  nop                      ;循环等待
      cmp bx,0
      jne next
       mov al,p21                 ;恢复原中断屏蔽字
       out 21h,al
       pop ds                     ;恢复现场
       pop dx
       mov ah,25h
       mov al,0bh                 ;恢复原系统中断向量
       int 21h
       mov ah,4ch                 ;返回DOS
       int 21h
useint proc far                     ;中断服务程序
       sti                        ;开中断
       dec bx
       push ax                   ;保护现场
       push bx
       push ds
       mov ax,data                ;设置用户段
       mov ds,ax
       mov dx,offset msg           ;取要显示的字符串地址
       mov ah,09h                ;显示字符串
       int 21h
       mov al,20h                 ;发EOI命令
       out 20h,al
       pop ds                     ;恢复现场
       pop bx
       pop ax
       iret                       ;中断返回
useint endp
code ends
    end start

⌨️ 快捷键说明

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