1

在这里,我试图将变量 X(它是一个 8 位变量)移动到寄存器 bx(它是一个 16 位寄存器)中。在这种情况下,如何将 X 的值移动到寄存器 bx 中?

.686p
.model flat,stdcall
.stack 2048

.data
X byte 5
ExitProcess proto, exitcode:dword
.code

start:
invoke  ExitProcess, 0

mov bx, X; 1>p4.asm(13): error A2022: instruction operands must be the same size

end start ;what does the end statement do?
4

2 回答 2

5

除了 Rahul 的回答之外,如果您还需要归零bh并且正在处理任何 80386 或更新版本(如 所示.686p)是:

movzx bx, X

如果您使用 X 作为有符号值并且需要符号扩展bx

movsx bx, X
于 2013-03-21T06:07:06.037 回答
3

BX 的低 8 位可寻址为 BL。

所以,你需要做的就是: mov bl, X

于 2013-03-21T05:58:16.563 回答