概述
中断信号可以来自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必须响应中断。最后
以上就是沉静西装为你收集整理的8086汇编学习笔记9-中断的全部内容,希望文章能够帮你解决8086汇编学习笔记9-中断所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复