当前位置: 代码迷 >> 汇编语言 >> 多个程序如何使用有限的寄存器
  详细解决方案

多个程序如何使用有限的寄存器

热度:9094   发布时间:2013-02-26 00:00:00.0
多个程序怎么使用有限的寄存器
我用汇编,写了改变寄存器值的语句!
用OD调试,单步运行,观察寄存器的值改变。问题产生了,这期间别的程序应该也在用寄存器吧,寄存器的值应该也会变啊,只能猜测调试程序显示的寄存器的值只是当前正在调试程序改变寄存器的值的一个快照?
求详解!!
有没有可以动态监视寄存器值的程序
我想看看程序运行引起的寄存器值的变化

------解决方案--------------------------------------------------------
不同程序在切换 cpu 的控制权时,有个运行环境的保存和恢复的操作,这个环境就包括了 cpu 寄存器的内容。
------解决方案--------------------------------------------------------
系统在切换程序的时候会把程序现在的寄存器等东西都放到TSS里面,保存
就算调式程序的话,这个动作应该是调试程序做的工作
------解决方案--------------------------------------------------------
楼上那些家伙都把问题说复杂了。实模式下的debug不也能显示各个寄存器的“快照”么,难道实模式下也有TSS和任务切换?
实事上,单步中断的响应过程是由调试程序提供的。处理器进入该中断过程时,会将CS和IP和EFLAGS压栈,这就是为什么它有CS和IP的“快照”。同时,在一进入中断过程时,立即将所有寄存器压栈,再一一取出显示,这不就是中断前各个寄存器的“快照”么!
  相关解决方案