汇编指令中esi0a是什么意思?
What is the meaning of esi0a in Assembly insttructions?
我已经花了大约 6 个小时使用 Cheat Engine 调试一些代码。我遇到了一些非常奇怪的事情。
指令为:
imul esi,esi0A
这是什么意思?
指令前ESI = 5
imul指令后变成32.
TL;DR
相关指令可能是
imul esi, esi, 0x0A
,但 Cheat Engine 可能忘记打印逗号 ,
.
加长版
您描述的数学结果符合 0x00000005
= 5 乘以 0x0A
= 10 得到 0x00000032
= 50。
英特尔软件开发人员手册,第 2A 卷,§3.2 - IMUL - Signed Multiply
记录了指令的功能和有效形式。在允许立即数的那些中,唯一可用的形式需要指定 1) 目标寄存器,2) 源寄存器和 3) 立即数。
在这种特殊情况下,显然这些分别是 esi
、esi
、0x0A
。 Cheat Engine 只是错误地打印了它。
我已经花了大约 6 个小时使用 Cheat Engine 调试一些代码。我遇到了一些非常奇怪的事情。
指令为:
imul esi,esi0A
这是什么意思?
指令前ESI = 5 imul指令后变成32.
TL;DR
相关指令可能是
imul esi, esi, 0x0A
,但 Cheat Engine 可能忘记打印逗号 ,
.
加长版
您描述的数学结果符合 0x00000005
= 5 乘以 0x0A
= 10 得到 0x00000032
= 50。
英特尔软件开发人员手册,第 2A 卷,§3.2 - IMUL - Signed Multiply
记录了指令的功能和有效形式。在允许立即数的那些中,唯一可用的形式需要指定 1) 目标寄存器,2) 源寄存器和 3) 立即数。
在这种特殊情况下,显然这些分别是 esi
、esi
、0x0A
。 Cheat Engine 只是错误地打印了它。