汇编-内中断

本文详细介绍了8086CPU中的内中断,包括除法错误、单步执行等中断类型,以及中断向量表、中断过程、中断处理程序的执行流程。在中断处理后,会通过iret指令返回。文中还通过0号中断(除法错误)的处理示例,演示了如何编写中断处理程序,并讨论了在内存中存放中断处理程序的策略。
摘要由CSDN通过智能技术生成

中断的意思是指, CPU不再接着(刚执行完的指令) 向下执行, 而是转去处理这个特殊信息。

内中断的产生
 

8086CPU,当CPU内部有下面的情况发生的时候, 将产生相应的中断信息:

  (1)除法错误, 比如, 执行div指令产生的除法溢出;

  (2)单步执行;
  (3)执行into指令;

  (4)执行int指令。

 CPU首先要知道, 所接收到的中断信息的来源。所以中断信息中必须包含识别来源的编码。8086CPU用中断类型码的数据来标识中断信息的来源。中断类型码为一个字节型数据,可以表示256种中断信息的来源。以后,我们将产生中断信息的事件, 即中断信息的来源, 简称为中断源,

上述的4种中断源, 在8086CPU中的中断类型码如下:

        (1)除法错误:0

        (2)单步执行:1

        (3) 执行into指令:4

        (4)执行int指令, 该指令的格式为int n, 指令中的n为字节型立即数, 是提供给CPU的中断类型码。

中断向量表

CPU用8位的中断类型码通过中断向量表找到相应的中断处理程序的入口地址。那么什么是中断向量表呢?中断向量表就是中断向量的列表。那么什么是中断向量呢?所谓中断向量,就是中断处理程序的入口地址。展开来讲,中断向量表,就是中断处理程序入口地址的列表。
中断向量表在内存中保存,其中存放着256个中断源所对应的中断处理程序的入口,如图12.1所示。

可以看到, CPU只要知道了中断类型码, 就可以将中断类型码作为中断向量表的表项号,定位相应的表项,从而得到中断处理程序的入口地址。
中断向量表在内存中存放,对于8086PC机,中断向量表指定放在内存地址0处。从内存0000:0000到0000:03FF的1024个单元中存放着中断向量表。能不能放在别处呢?不能, 如果使用8086CPU, 中断向量表就必须放在0000:0000~0000:03FF单元中, 这是规定, 因为8086CPU就从这个地方读取中断向量表。
那么在中断向量表中,一个表项占多大的空间呢?一个表项存放一个中断向量,也就是一个中断处理程序的入口地址, 对于

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值