0

我无法理解汇编语言中的一项指令-> IMUL

据我所知,Imul 是 ->

imul dest, source1, source2

我现在遇到的问题,ollyDBG中Imul的乘法结果和我的不一样!

这是 OllyDbg 上的 IMUL ->

乘法的结果是十进制的 0x367AA048 或 914006088..

我尝试用这个 PHP 代码来测试这个乘法..

echo dechex(0x00000053 * 0x97C9F598);

令人惊讶的是,我的 PHP 乘法结果与 OllyDbg 得到的结果不同。

我希望有人能让我从这个问题中弄清楚..

谢谢。

4

1 回答 1

2

此乘法的结果不适合 32 位值,因此您看到的值EAX只是结果的低 4 个字节。

如您所见,由于此乘法结果为:0x31367AA048,因此将低 4 个字节:0x367AA048放入中。EAX

于 2013-06-24T18:41:44.633 回答