欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编------中断

程序员文章站 2022-06-08 22:57:55
...

中断信息分为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号中断的中断过程

相关标签: 汇编 中断