gpt4 book ai didi

c++ - 将汇编指令翻译成 C++

转载 作者:行者123 更新时间:2023-11-30 03:39:32 26 4
gpt4 key购买 nike

我在将以下程序集翻译成 C++ 时遇到问题

MOVZX EAX, DX

其中 EDX 是一个 32 位寄存器。我需要获得最低的 16 位(DX)。

我试过以下方法:

unsigned edx = 0x123ABCDE;
unsigned dx = (edx>>16) & 0xff;

我希望得到一个存储在 dx 中的 BCDE 值,但它有点不对。

任何帮助将不胜感激。

最佳答案

让我们逐步分析您的代码。
未签名的 edx = 0x123ABCDE;
没有什么不寻常的。

让我们根据求值顺序分解下一条语句。
(edx >> 16) -- 右移 16 位。
这是右移 2 个字节或 4 个十六进制数字。
答案应该是 0x123A。

现在,让我们保留最右边的 8 位(与 0xFF 相与):
0x123A & 0xFF == 0x3A

结果应该是变量dx 中的0x3A。

关于c++ - 将汇编指令翻译成 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38796768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com