码迷,mamicode.com
首页 > 其他好文 > 详细

单步中断

时间:2018-11-12 17:52:22      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:处理   使用   输入   产生   进入   过程   中断方式   bug   类型   

基本上,CPU在执行完一条指令之后,如果检测到标志寄存器的TF位为1,则产生单步中断,引发中断过程。单步中断的类型码为1,则它所引发的中断过程如下:

1) 取得中断类型码1;

2)标志寄存器入栈,TF、IF设置为0

3)CS、IP入栈

4)(IP)=(1*4), (CS)=(1*4+2)。

 

Debug的实现就是提供了单步中断的中断处理程序,功能为显示所有寄存器中的内容后等待输入命令。然后,在使用t命令执行指令时,Debug将TF设置为1,使得CPU工作于单步中断方式下,则在CPU执行完这些指令后就引发单步中断,执行单步中断的中断处理程序,所有寄存器中的内容被现实在屏幕上,并且等待输入命令。

CPU在进入中断处理程序之前,设置TF=0。这样是为了避免CPU在执行中断处理程序的时候发生单步中断。这就是为什么在中断过程中有TF=0这个步骤。

 

单步中断

标签:处理   使用   输入   产生   进入   过程   中断方式   bug   类型   

原文地址:https://www.cnblogs.com/gkp307/p/9946980.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!