8086汇编学习笔记9-中断
来源:互联网 发布:python game engine 编辑:程序博客网 时间:2024/06/09 17:02
中断信号可以来自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-中断
- 汇编学习笔记--内中断
- [汇编学习笔记][第十二章内中断]
- 汇编--学习笔记(十三)-中断及中断处理程序
- 汇编学习--7.16--中断
- 汇编入门学习笔记 (十三)—— 外中断
- 汇编--学习笔记(十三)-中断(二)- 自我总结
- 8086汇编中断
- 8086汇编 中断例程
- 8086汇编中断入门
- 汇编学习--7.16--外中断
- 汇编学习之中断问题
- 汇编学习历程(int中断学习)
- 汇编学习笔记第11~13章:标志寄存器-内中断-int指令
- 汇编学习笔记第14~17章:端口-外中断-直接定址表-BIOS读写
- 汇编中断中显示属性字节(一般为BL)的学习笔记
- 汇编学习历程(按键中断劫持)
- 8086汇编学习笔记6-寻址方式
- 1.5、代理模式
- 8086汇编学习笔记7-标志寄存器
- 8086汇编学习笔记8-转移指令
- Linux 下Sed基本用法
- 8086汇编学习笔记9-中断
- 自我陶醉
- Android中widget的应用【安卓源码解析三】
- 8086汇编学习笔记10-端口
- Android service的使用
- 字符串的处理
- 提高Android Service 优先级的方法 .
- 有关去除dataflash以及换为64M nand的相关修改及bugfix
- 逆向序列号生成算法(一)