在装配说明中esi0a是什么意思?

问题描述 投票:1回答:1

我花了大约6个小时使用Cheat Engine调试一些代码。我遇到了一些非常奇怪的东西。

crazy weird instruction

该指令内容如下:

imul esi,esi0A

这是什么意思?

在指令之前ESI = 5在imul指令之后它变为32。

assembly x86 disassembly cheat-engine
1个回答
3
投票

TL;DR

有问题的指示可能是有意的

imul esi, esi, 0x0A

,但作弊引擎可能忘了打印逗号,


Longer Version

你描述的数学结果与0x00000005 = 5乘以0x0A = 10一致,产生0x00000032 = 50。

英特尔软件开发人员手册,第2A卷,§3.2 - IMUL - Signed Multiply记录了指令的功能和有效形式。在允许立即常量的那些中,唯一可用的形式需要指定1)目标寄存器,2)源寄存器和3)立即常量。

在这个特殊情况下,显然这些分别是esiesi0x0A。 Cheat Engine只打印错误。

IMUL Instruction Forms

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.