汇编语言--------------内中断

1、硬件中断分外部中断和内部中断

外部中断计算机外设发出的中断请求----------------可以屏蔽中断

内部中断硬件出错或者运算出错引起的中断-------不可以屏蔽的中断

2、软件中断

软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序以及DOS系统功能调用(INT21)等都是软件中断

CPU的设计着必须在中断信息和处理程序的入口建立某种联系,使得CPU根据中断信息可以找到要执行的处理程序

已知,中断信息中包含有标识中断源的类型码。根据CPU的设计,中断类型码的作用就是用来定位中断处理程序

CPU中利用8位的中断类型码通过中断向量表找到相应的中断处理程序的入口地址

中断向量表就相当于一个索引

4      段地址:偏移地址        ------------大概就是长这个样子

8位的中断类型码对应256种中断源

中断向量表在内存中存放,并且指定存放在内存0开始的地方,从内存0000:0000到0000:03FF的1024个单元中存放着中断向量表。

为什么是1024个字节?

256个入口一个就有一个段地址和偏移地址 16位的CPU 就是  256*4 = 1024

内存中有一段安全的内存0:200   -    0:300

因为256个中断我们不是全部都用上的

中断过程

 

这里乘4是因为每个中断码都是4个字节

CS IP入栈类似于call调用子程序

iret通常和硬件自动完成中断过程的配合使用。

在中断过程中,寄存器入栈顺序是标志寄存器、CS\IP

iret的出栈顺序是IP CS 标志寄存器

刚好和其对应实现了执行中断处理前的CPU现场恢复标志寄存器和CS IP的工作

iret指令执行后,CPU回到CPU中断处理程序前的执行点继续执行程序

 

除法中断0号中断

do0放在哪了?

因为除法溢出随时可能发生,CPU随时可能将CS:IP指向do0的入口,执行程序

do0应该放在开始的那块内存最方便

//1、如果是向操作系统申请内存太麻烦

 

在内存0:200处安装do0的代码,将0号中断处理程序的入口地址设置为0:200

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值