8086汇编学习笔记9-中断

中断信号可以来自CPU内部或外部。

 

一. 8086CPU内部中断信号有

(1) 除法错误

(2) 单步执行

(3) 执行into指令

(4) 执行int指令

1. 中断码

8086用一个字节来描述中断码,可以表示256中不同的中断信息。

除法错误中断码为0

单步执行中断码为1

执行into指令中断码为4

执行int n指令中断码为n

2. 中断向量表

用来存放中断码对应中断处理程序的入口地址,一个地址包括段地址和偏移地址,高地址存放段地址,低地址存放偏移地址,需要四个字节来存储中断处理程序的入口地址,256个中断信号处理程序需要1024个字节来存储。8086CPU中断向量表存放在0地址处开始的1024个存储单元中,地址为0000:0000~0000:

03fff。

3. 中断处理程序

CPU在接收到中断信号后,停止当前正在执行的程序,跳转到由中断号对应的中断向量表地址处,去执行中断处理程序。

4. 中断过程(硬件自动完成)

(1) 由中断信息得到中断码

(2) 标志寄存器入栈

(3) 设置标志寄存器TF和IF为0

(4) cs入站

(5) ip入站

(6) 用中断向量表中地址设置cs和ip

5. 而iret指令是ip出栈,cs出栈和标志寄存器出栈

自己编写中断处理函数,只需要将中断处理函数的地址存放到相应的中断向量表处,然后调用iret指令返回。

6. 单步中断,CPU在执行完一条指令后,如果检测到标志寄存器TF位为1,则产生单步中断,触发中断过程。

7. int指令,直接触发一个n号中断

内部中断也就是通常所说的软中断。

 

二. 8086CPU外部中断,也就是通常所说的硬中断,理解什么是软中断什么是硬中断,就看是否是由电平信号去触发中断过程。

1. 可屏蔽中断,CPU根据标志寄存器IF位决定是否响应中断,IF=1,响应中断,IF=0,不响应中断。

2. 不可屏蔽中断,CPU必须响应中断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值