对本次反汇编中 shl 指令的使用感到困惑
逆向工程
拆卸
x86
C
数据库
2021-06-21 08:23:47
1个回答
让我们一行一行地分解它。假设x
是您想要乘以的东西21
并将其存储在eax
(如本例中第 行之后34
)。
<39>: mov edx, eax ; so copy the x to edx
<41>: mov eax, edx ; it's pointless to do this mov; after those two lines eax & edx has the value of x
<43>: shl eax, 2 ; so eax = x * 4
<46>: add eax, edx ; so eax = x * 5 (x * 4 + x)
<48>: shl eax, 2 ; so eax = x * 20 (x * 5 * 4)
<51>: add eax, edx ; so eax = x * 21 (x * 5 * 4 + x)
附注。对于未来,请将代码作为文本发布。复制比从图像容易得多。
其它你可能感兴趣的问题