【发布时间】:2014-11-09 04:15:34
【问题描述】:
我正在尝试模拟jmp (opcode ff /4) 的操作。
当参考 Intel 80386 手册时,我发现:
IF instruction = near indirect JMP
(* i.e. operand is r/m16 or r/m32 *)
THEN
IF OperandSize = 16
THEN
EIP <- [r/m16] AND 0000FFFFH;
ELSE (* OperandSize = 32 *)
EIP <- [r/m32];
FI;
FI;
"EIP
%eax=0x100063
(%eax)=0x00fcff10(a wrong address)
我需要直接取%eax的值而不是访问地址0x100063得到0x00fcff10。
和说明书不冲突吗?
如果 r/m 指的是地址,我该怎么办?
eip=M[r/m] 或 eip=M[M[r/m]]?
【问题讨论】:
-
你的处理器手册一定很老了,该更新了。