Режим косвенной адресации Masm для команды MOV - PullRequest
1 голос
/ 07 декабря 2009

Я пробовал следующие формы, и masm не нравится ни одна из них:

mov byte [myVariable], al
mov byte ptr [myVariable], al
mov [byte myVariable], al

Чего мне не хватает? Почему я не могу использовать косвенную адресацию.

ошибка, которую я получаю от masm - это «отсутствует оператор в выражении» в некоторых строках, некоторые из них говорят «Ожидается поле структуры»

Ответы [ 2 ]

1 голос
/ 12 сентября 2011
myVariable equ 0404h

не объявляет переменную, она объявляет константу. Ассемблер просто заменяет все константы их значениями в объектном файле. Следовательно,

mov [myVariable], al

становится

mov [0404h], al

, что недействительно.

Вы должны присвоить значение регистру, вот так:

mov di,0404h
mov byte ptr [di],al
0 голосов
/ 07 декабря 2009
mov [myVariable], al

должно быть достаточно или даже просто:

mov myVariable, al

Но опять же mov byte ptr [myVariable], al должен также работать, что заставляет меня задаться вопросом "что такое" myVariable "?

...