汇编------中断

版权声明:转载请注明出处 https://blog.csdn.net/Zach_z/article/details/78574810

中断信息分为CPU的内部信息(内中断)和外部信息(外中断)

内中断的产生
1. 除法错误,比如执行div指令产生的除法溢出
2. 单步执行
3. 执行into指令
4. 执行int指令

8086用中断类型码的数据来标识中断信息的来源,上述4种中断源,在8086CPU中的中断类型码如下
1. 除法错误:0
2. 单步执行:1
3. 执行into指令:4
4. 执行int指令: n (指令格式:int n)

中断向量表,存放着256个中断源所对应的中断处理程序的入口,8086的中断向量表放在内存地址0处

这里写图片描述
内存0000:0000到0000:03FF的1024个单元中存放着中断向量表

《汇编语言-王爽》12章例题

1.用Debug查看内存,情况如下:

0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00

则3号中断源对应的中断处理程序的入口地址为 0070:018B

解析:一个中断占两个字单元,高地址字段存段地址,低地址字段存偏移地址,小端存储

2.存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为: N*4

存储N号中断源对应的中断程序处理程序入口的段地址内存单元的地址为: N*4+2

中断过程
1. 取得中断类型码N
2. pushf(标志寄存器值入栈)
3. TF=0,IF=0
4. push CS
5. push IP
6. (IP)=(N*4), (CS)=(N*4+2)

中断处理程序的编写方法
1. 保存用到的寄存器
2. 处理中断
3. 恢复用到的寄存器
4. 用iret指令返回

iret指令的功能用汇编语法描述为

pop IP
pop CS
popf

int指令

CPU执行int n指令,相当于引发一个n号中断的中断过程

展开阅读全文

没有更多推荐了,返回首页