[058][汇编语言]检测点12.1 内中断 中断向量表 中断过程

8086CPU 可以表示256种中断信息的来源

  • 中断类型码为一个字节型数据(8位 byte

内中断

  • CPU 用中断类型码中断向量表中找到相应的中断处理程序的入口地址
  • 入口地址由 段地址:偏移地址 组成,占用 2个字单元(即4个字节、4个内存单元)
  • 中断向量表 放在 内存 之中:8086CPU 规定将内存地址 0000:0000~0000:03FF1024(256 x 4 = 1024)个内存单元用来存放中断向量表

检测点 12.1

检测点12.1

存储N号中断源对应的中断程序入口

高位地址 低位地址
偏移地址 4N+1 4N
段地址 4N+3 4N+2

8086CPU 中断过程

(1)(从中断信息中)取得中断类型码 N;
(2)标志寄存器的值入栈 pushf
(3)设置 TF = 0 ,IF = 0
(4)CS的内容入栈 push CS
(5)IP的内容入栈 push IP
(6)从内存地址为 4N+2 以及 4N 取读取中断处理程序 (IP) = (4N) , (CS) = (4N+2)

iret 指令

  • iret 通常和硬件自动完成的中断过程配合使用
iret
 
等价于
pop IP
pop CS
popf

单步中断

CPU执行完一条指令后,此刻检测到 TF = 1 ,进入单步中断
单步中断的类型码为 1

所引发的中断过程如下:
(1)(从中断信息中)取得中断类型码 N = 1
(2)标志寄存器的值入栈 pushf
(3)设置 TF = 0 ,IF = 0
(4)CS的内容入栈 push CS
(5)IP的内容入栈 push IP
(6)从内存地址为 4N+2 以及 4N 取读取中断处理程序 (IP) = (4x1) , (CS) = (4x1+2)
  • TF = 0 避免CPU无限执行单步中断

响应中断

  • 执行完 SS寄存器 相关的指令后, 即便发生中断,CPU也不会响应
  • 连续设置 SS 和 SP 才可以指向正确的栈顶地址
mov ax,1000H

------------------
|  mov ss,ax  |
|  mov sp,16  |
------------------
一定要挨着写!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 学校里植物的生命力如同年轻的学生一样,很有活力,迟迟不肯迎接深秋的到来,偶尔见得几片落叶飘下来。想想十一月即到,这...
    乱乱310阅读 345评论 0 0
  • 文|夜伴小懒喵 文章首发在个人微信公众号:youzhilanmiao 不知道从什么时候起,有的人因为有孩子了,就结...
    夜伴小懒喵阅读 40,674评论 4 7
  • 还原涂色问题 递推过程分析 设涂色方案总数为an,(n >= 2),当n = 2 时, an = k(k - 1)...
    阁中悟剑阅读 302评论 0 0
  • 白雪在呼啸声中舞蹈 狂风没有吹散你的精神 你随风自然的落下 覆盖着黄色的大柳树 覆盖着黑色的楼顶 覆盖着匆匆忙忙的...
    MSpink阅读 512评论 0 0

友情链接更多精彩内容