如何在asmjit库代码中将一个64位数字除以另一个64位数字?

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

我尝试过:

                        a.xor_ (EDX, EDX);      /* clear the upper 64 bit */
                        a.idiv (R9);
                        a.mov (R8, EAX);

结果存储在R8中。计算应为:R8 = R8 / R9。 我的代码给出了错误的结果。如何解决这个问题?

assembly x86-64 asmjit
1个回答
0
投票
R8 = R8 / R9

您似乎没有从 R8 加载 RAX。

a.mov (RAX, R8);
a.cqo;
a.idiv (R9);
a.mov (R8, RAX);
a.mov (R8, EAX);

RAX 中的商不仅仅存在于 EAX 中。

© www.soinside.com 2019 - 2024. All rights reserved.