汇编------中断

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值