我正在与 MASM 合作。
我有一个 64 位变量,我需要将来自寄存器的 32 位输入存储到 64 位变量的下半部分。
首先,我将下半部分的地址移动到寄存器中:
mov ebx, OFFSET num1+32
然后,我使用PTR
指令将 32 位输入存储到变量的后半部分:
mov DWORD PTR [ebx], eax
但是,每次运行第二行时,我在“.data”中声明的字符串之一都会在内存中被覆盖。它来自:
45 6e 74 65 72 20 46 69 72 73 74 20 48 61 6c 66 20 6f 66 20
到
45 6e 74 65 72 20 46 69 bb bb bb bb 48 61 6c 66 20 6f 66 20
改变的东西bb bb bb bb
如上图所示。
这bb bb bb bb
是我在运行上述两行之前输入的要存储在 64 位变量中的内容。
任何建议表示赞赏。谢谢