鱼C论坛

 找回密码
 立即注册
查看: 1075|回复: 3

[已解决]汇编语言中的CS与IP寄存器的值怎么不是变化的?

[复制链接]
发表于 2022-11-16 23:13:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问一下如题,Win+R -> cmd ->debug -> -r查看寄存器数值。CS:IP寄存器并没有数据跳动的原因,我思考的结果,debug并未打开任何一个程序,就像点开浏览器默认空白页面,打开word显示空白页面一样。
假如是 debug C:\fishc.exe 那查看-r,CS:IP寄存器应该就是会跳动得了吧。
求解答指路,感恩遇见!
最佳答案
2022-11-16 23:19:49
         debug.exe 是会实际加载目标程序进入内存的,当你调试的时候,也是让指令实际执行,然后,debug 通过特殊技术始终在控制这一切,至于各个寄存器的值也是实际的,被调试程序一旦运行起来,CS:IP 就会开始改变了,不要在这里空想,实际调试一个程序试试看,好好找找感觉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-16 23:19:49 | 显示全部楼层    本楼为最佳答案   
         debug.exe 是会实际加载目标程序进入内存的,当你调试的时候,也是让指令实际执行,然后,debug 通过特殊技术始终在控制这一切,至于各个寄存器的值也是实际的,被调试程序一旦运行起来,CS:IP 就会开始改变了,不要在这里空想,实际调试一个程序试试看,好好找找感觉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-17 08:30:35 From FishC Mobile | 显示全部楼层
你好jackz007朋友,感谢你的回复。我是刚开始学习汇编,到这个环节存在点疑惑,或许往后学疑惑自然解开。
咱们系统是一直在运行的,为啥-r查看到的cs:ip寄存器却一直没变动,(实战视频视频小甲鱼老师输入debug后用了-r命令)
我的疑惑是,操作系统也可以看成是一个软件,它一直在运行,那debug -r应该不输入任何程序参数时,寄存器应该是会变动的。debug输入参数时,cs:ip寄存器指向程序断点处,那应该整个系统都卡死了,实际并不会这样,所以不理解,我们看到的寄存器是虚拟的还是什么情况。
想法有点乱,不知道你能理解我想表达的没。
简单来说,可能是知识盲区的原因,我目前的想法是,硬件寄存器之上跑的操作系统,操作系统里跑的软件。所以查看寄存器,应该无时无刻不在变动,因为系统一直在运行。
感恩你耐心解惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-17 10:42:51 | 显示全部楼层
本帖最后由 jackz007 于 2022-11-17 11:06 编辑

        你想的有点太多了,从加载被调试程序开始,debug 中所有的寄存器只属于你和你所调试的程序,所以,除非运行程序指令让寄存器改变,否则,寄存器的值永远都不会自己改变,你不是上帝,不用关心这一切如何做到,你只需要专注你的程序指令、程序流程走向,搞清楚程序出现某个结果的来陇去脉就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 08:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表