您的位置:首页 > 其它

IO指令模拟流程(12)

2013-05-22 08:53 120 查看
1 关于eip

x86_emulate中做指令模拟的具体动作,若模拟成功返回X86EMUL_OKAY,若需要重试模拟同一条指令返回X86EMUL_RETRY,若遇到无法处理的状况返回X86EMUL_UNHANDLEABLE,若遇到异常返回X86EMUL_EXCEPTION。

若返回X86EMUL_OKAY,则表示可以执行下一条指令,会走回写流程,将改变后的eip值写回寄存器,否则直接返回,则寄存器中eip值不变,下次进入还执行当前指令。

int

x86_emulate(

struct x86_emulate_ctxt *ctxt,

const struct x86_emulate_ops *ops)

{

writeback:

/* Commit shadow register state. */

_regs.eflags &= ~EFLG_RF;

*ctxt->regs = _regs;

done:

return rc;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: