中断

本文展示了一个简单的中断实验程序,通过设置中断矢量和控制中断屏蔽寄存器来实现对USB设备IRQ3中断的响应。中断服务程序中显示了一条消息并发送了EOI信号结束中断。

;*******************************;

;* 中断实验 *;

;*******************************;

data segment

mess db 'TPCA interrupt!',0dh,0ah,'$'

data ends

code segment

assume cs:code,ds:data

start:

mov ax,cs

mov ds,ax

mov dx,offset int3 ;USB设备中断为IRQ3

mov ax,250bh ;设置中断3的中断矢量

int 21h

cli ;CPU清中断标志位

in al,21h ;设置中断屏蔽寄存器

and al,0f7h ;开放IRQ3中断

out 21h,al

mov cx,10

sti ;CPU开中断

ll: jmp ll

int3: ;中断服务程序

mov ax,data

mov ds,ax

mov dx,offset mess ;显示提示信息

mov ah,09

int 21h

mov al,20h ;发出EOI结束中断

out 20h,al

loop next

in al,21h ;关闭IR3中断

or al,08h

out 21h,al

sti ;CPU开中断

mov ah,4ch

int 21h

next: iret

code ends

end start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值