博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单步中断
阅读量:6329 次
发布时间:2019-06-22

本文共 422 字,大约阅读时间需要 1 分钟。

基本上,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这个步骤。

 

转载于:https://www.cnblogs.com/gkp307/p/9946980.html

你可能感兴趣的文章
SVN的使用
查看>>
MySQL分区
查看>>
开源 java CMS - FreeCMS2.8 自定义标签 siteOne
查看>>
jstl 保留两位小数、js String 转float 保留两位小数
查看>>
【leetCode】134. Gas Station-----Java
查看>>
使用websocket的组件socket.io实现最简单的聊天室功能。
查看>>
vim的一些命令
查看>>
 企业所面临的问题与挑战
查看>>
iOS开发性能优化的25个tips
查看>>
时空查询里分线查询
查看>>
初探莫比乌斯反演及欧拉反演
查看>>
python 中的三元运算符
查看>>
我的友情链接
查看>>
[INS-20802] Oracle Net Configuration Assistant failed,及怎么安装oracle 补丁
查看>>
WMS仓储管理系统哪个好?WMS仓储管理系统有什么用
查看>>
CentOS64位用John破解简单密码,No password hashes loaded
查看>>
JAVA数据类型转换
查看>>
smarty实例教程-模板设计篇-2
查看>>
Dubbo入门实例
查看>>
Memcache知识点梳理
查看>>