错误A2022指令操作数必须大小相同

时间:2019-04-09 18:59:17

标签: assembly x86

我收到此错误。 “指令操作数必须大小相同

我相信这与变量“选择”的大小有关

.data
    choice BYTE ?

mov choice, eax     ; error on this line
    call Crlf
    ret
DisplayMenu ENDP

DisplayOpr PROC USES edx
    mov eax, choice     ; error on this line

该如何解决此错误?

1 个答案:

答案 0 :(得分:0)

寄存器eax的长度为32位,而choice仅为单个BYTE(即8位)。

您可以这样声明choice,使其长度为32位:

choice DD 0AABBCCDDh

或者,如果choice应该是一个字节长,则可以使用8位部分寄存器al,它是指寄存器EAX的最低有效字节:

mov al, choice