汇编语言-内中断

本文介绍了汇编语言中的内中断概念,详细讲解了中断向量表及其工作原理。通过0号中断改写实例,阐述中断处理程序的安装和执行过程,并对int指令进行了说明,探讨了DOS和BIOS提供的中断例程调用方式。
摘要由CSDN通过智能技术生成

什么是内中断?

在CUP正在执行指令时,检测到CPU内部产生一个特殊信息,并且可以立即对说接收到的信息进行处理,这种信息,我们叫做内中断。

中断向量表

在产生中断程序时,中断程序会给出一个中断类型码。之后,系统通过中断向量表来查找相应中断类型的入口地址,设置CS,IP,运行相应中断程序。

8086中,中断向量表指定存放在0000:0000内存处,从内存0000:0000到0000:03FF的1024个单元中存放着中断向量表。在中断向量表中,每一个表项存放这一个中断向量,也就是一个中断处理程序的入口。这个入口包括段地址和偏移地址,所以一个表项占用了2个字,高位存放段地址,低位存放偏移地址。

中断过程简述

  1. 收到中断信息
  2. (从中断信息中)取得中断类型码
  3. 标志寄存器的值入栈(因为在中断过程中要改变标记寄存器的值,所以先将其保存在栈中)
  4. 设置标志寄存器的第八位TF和第九位IF的值为0
  5. CS的内容入栈
  6. IP内容入栈
  7. 从内存地址为(中断类型码 * 4) 和(中断类型码 * 4+2)的两个字单元中读取中断处理程序的入口地址设置为IP和CS

改写0号中断代码实例

对0号中断例程序安装思路

编写一个安装程序,然后将安装程序中0号代码段的相应代码存放到一个内存中永远不会被改变的位置(这里我们选择了中断向量表中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值