Ошибка A2022 Операнды инструкции должны быть одинакового размера - PullRequest
0 голосов
/ 09 апреля 2019

Я получаю эту ошибку. «Операнды инструкции должны быть одинакового размера

Я считаю, что это как-то связано с размером переменной "выбор"

.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 голосов
/ 09 апреля 2019

Регистр eax имеет длину 32 бита, тогда как choice - это всего лишь один BYTE (т.е. 8 бит).

Вы можете изменить choice на 32-битную длину, объявив его так:

choice DD 0AABBCCDDh

В качестве альтернативы, если choice должен быть длиной в один байт, вы можетеиспользуйте 8-битный частичный регистр al, который ссылается на младший байт регистра EAX:

mov al, choice
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...