汇编指令中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) 立即数。

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