当前位置: 代码迷 >> 汇编语言 >> eip寄存器的修改和执行当前指令哪位高手先
  详细解决方案

eip寄存器的修改和执行当前指令哪位高手先

热度:7387   发布时间:2013-02-26 00:00:00.0
eip寄存器的修改和执行当前指令谁先?
也是别人问我的。。。
在群里问了,悲催,没人回。。。

我想到的可能的逻辑顺序:
cpu根据eip的值取指令->修改eip指向下一条指令->执行当前指令->......
or
cpu根据eip的值取指令->执行当前指令->修改eip指向下一条指令->......

个人倾向于前者,求大神解答,不是这两种的也行,谢谢!

------解决方案--------------------------------------------------------
eip修改的值 是看 当前指令大小的 指行完当前指令后 修改eip值 然后继续执行 该eip所对应的指令
这是我的理解:)也就是 后者 呵呵
------解决方案--------------------------------------------------------
第一种。首先修改指令指针。然后执行上一条在指令缓冲队列中的指令。这样安排是有严重意义的哦
------解决方案--------------------------------------------------------
当然是先修改EIP,否则call指令岂不是导致无限循环?
《Intel® 64 and IA-32 Architectures Software Developer's Manual》里面已经明确说了:
3.5 INSTRUCTION POINTER
The instruction pointer (EIP) register contains the offset in the current code segment for the next instruction to be executed.

------解决方案--------------------------------------------------------
探讨
当然是先修改EIP,否则call指令岂不是导致无限循环?
《Intel® 64 and IA-32 Architectures Software Developer's Manual》里面已经明确说了:
3.5 INSTRUCTION POINTER
The instruction pointer (EIP) register contains the offset in the curre……
  相关解决方案