【发布时间】:2013-10-11 20:41:40
【问题描述】:
我想知道 MOV BYTE PTR 指令是如何工作的,我这里有一个例子,我无法理解结果。检查它:
MOV CL,BYTE PTR DS:[ESI]
----Ollydbg show this------
DS:[01EA22E0]=41 ('A')
CL=B0
为什么 CL = B0?为什么CL不是41?如果我在转储中去 ESI,我有这个
01EA22E0: 41 47 00 C5 B9 F1 63 3C... But any B0 ;(
检查我的打印:
我真的需要解决这个问题,欢迎任何帮助。
【问题讨论】:
-
可能是因为您使用 DS 寄存器来指定段。尝试删除它并执行
MOV CL,BYTE PTR [ESI] -
@Elalfer:我认为如果你不指定 DS:,你会默认得到它,所以我认为这不会有帮助。
-
我不熟悉 Ollydbg。你真的 step 超越了指令,所以它被执行了吗?您显示的内容与要执行的指令关于一致。