debug利用CPU提供的单步中断功能

  • 程序的正常执行
  1. 取指令
  2. 改变CS:IP
  3. 执行指令
  4. 取指令
  • DEBUG提供单步中断的中断处理程序,显示所有寄存器的内容后等待输入命令

使用-T命令,debug将TF标志设为1,使CPU工作在单步中断的方式下

  • 自定义单步中断处理程序,实现特殊功能

单步中断的处理与过程

    • TF陷阱标志(trap flag):用于调试的单步方式操作
    • TF = 1时每条指令执行后产生陷阱,由系统控制计算机
    • TF = 0时CPU正常工作
    • IF中断标志(interrupt flag)
    • IF = 1允许CPU响应可屏蔽中断请求
    • IF = 0关闭中断
  • CPU在执行完一条指令后,如果检测到标志寄存器的TF位为1,则产生单步中断(中断类型码为1),引发中断过程,执行中断处理程序
  1. 取得标志类型码1
  2. 标志寄存器入栈TF和IF设置0

设置TF = 0很重要,否则不停产生单步中断不断循环,TF置为0不允许单步中断了

  1. CS和IP入栈
  2. (IP) = (1 * 4) (CS) = (1 * 4 + 2)

  • 中断不响应的情况
  • 执行向SS寄存器发送数据,即使产生中断,CPU不响应
  • SS和SP同步完成

SS和SP联合指向栈顶,设置要同时完成

  • 强行插入指令把ss和sp割裂开,自动执行了下一条指令

详解汇编里的单步中断-T使用寄存器标志位TF和IF相关推荐

  1. uboot启动第一阶段详解——汇编代码部分start.S

    前言 uboot启动第一阶段是用汇编语言实现的,大部分都是Soc内部的初始化,可以理解成一些通用的初始化,只要使用该款Soc,第一阶段的初始化流程基本是一样的.不直接用C语言进行初始化是因为,C语言运 ...

  2. 详解关于int a[2][3]={{1},{2,3}}二位数组运算的问题

    c语言 int a[2][3]={{1},{2,3}};,则a[1][0]的值是_________详解: int a[2][3]即定义了一个二维数组,每维长度为3 令int a[2][3]={{1}, ...

  3. ssr面板_碧蓝航线:详解SSR里诺强不强 航母专用保姆 三流防空特化型轻巡

    碧蓝航线对于之称的新SSR轻巡里诺,作为金皮来说强度还是让很多指挥官期待的,不过很可惜这位舰娘真的没有想象中那么厉害,来看看对于其强度的具体评价以及分析吧. 基础能力 作为轻巡面板来说,找个最合适的参 ...

  4. matlab中dnf,图文详解DNF里的边际效应 用数据告诉你一切

    大家好,我是酸のLemonade.前几天发表了一篇关于暴风眼刷图的文章,得到了大家的支持,楼主深表感激!有些朋友主动留下了QQ,我也加了,共同交流柔道的刷图问题.有些朋友在游戏里加了我好友,也有些要求 ...

  5. 卅年史诗!地球上出现过的CPU完全收藏 - (20-25) 由无知到精通!详解CPU里遇到的“黑话”

    ●CPU常规知识汇总 CPU又叫中央处理器,是英文单词Central Processing Unit的缩写,负责对信息和数据进行运算和处理,并实现本身运行过程的自动化.在早期的计算机当中,CPU被分成 ...

  6. 最小生成树(详解普里姆算法)

    首先,我们来看一下图的一些基本知识点: 图:图 G=(V,E) 由顶点集 V 和边集 E 组成.每条边对应一个点对 (v,w),其中 v,w 属于 V .如果图中的点对是有序的,那么该图就是有向图,反 ...

  7. 详解LabVIEW里的数据流

    何为数据流? 所谓的数据流其实就是软件的运行顺序.学习过编程的人肯定都知道C语言,它是一种普遍的文本式语言.所以当程序编译运行起来,大体就以Main函数为入口,遵循从上到下的顺序! 而打开LabVIE ...

  8. GPT背后原理详解:从T5到GPT-4,国内20余位顶级大牛联合撰写

    来源:机器之心 自 20 世纪 50 年代图灵测试提出以来,人们始终在探索机器处理语言智能的能力.语言本质上是一个错综复杂的人类表达系统,受到语法规则的约束.因此,开发能够理解和精通语言的强大 AI ...

  9. 【计算机基础】详解IEEE754浮点数规格化表示(小数点左边隐含一位1)

    1.IEEE浮点表示 IEEE(读作"eye-triple-ee")浮点标准754中,用图1的形式来表示一个数: 图1 浮点数表示形式​​​ 符号(sign)--s决定这个数是负数 ...

最新文章

  1. LSTM 为何如此有效?这五个秘密是你要知道的
  2. 苹果自动驾驶部门「裁员」又「重组」,AI负责人接掌「泰坦」
  3. ios应用,64位问题,Missing 64-bit support
  4. 交换机配置软件_如何配置远程登陆交换机?最简单的解释方式,一看就懂
  5. 中缀表达式计算、后缀表达式计算、中缀转后缀
  6. 基于 KIF 的 iOS UI 自动化测试和持续集成
  7. 无法生成部件汇总表_RFID在汽车零部件企业仓储物流中的应用
  8. 利用火狐浏览器Firebug查看网页相关属性
  9. 泛型类 0104 c#
  10. MSP430杂谈--AD7745硬件IIC驱动与模拟IIC驱动
  11. 设计类时需要注意的6个地方
  12. C语言-浮点型(float/double/E)
  13. 什么是提花?大提花面料与小提花面料如何区别?
  14. AI学习笔记(二)图像与视频
  15. Car2go 的前端框架选择
  16. 串-第4章-《数据结构题集》答案解析-严蔚敏吴伟民版
  17. 使用GSON解析JSON数据
  18. python爬取网易云音乐飙升榜音乐,网易云音乐-飙升榜歌曲信息爬取
  19. linux的webui服务,Aria2控制前端WebUI客户端安装教程
  20. 2022最火土味情话文案

热门文章

  1. java自定义窗口_Java-创建一个自定义窗口,扁平化界面
  2. php preg_match 只匹配第一个字符_PHP正则表达式核心技术完全详解 第3节
  3. A5如何备份oracle数据库,oracle的数据库的导入导出
  4. html去除radio的样式,【HTML+CSS】纯CSS设置checkbox大小和样式 附Radio的去除默认样式和自定义样式...
  5. css3d模型做法,CSS3 3D房屋模型
  6. element-ui可编辑行增加行或删除行
  7. layer右下脚弹窗
  8. 【Web前端】hexo博客管理
  9. 关于WindowsPE的DIY和黑科技
  10. UVa1149 - Bin Packing