Почему это недопустимый операнд? - PullRequest
0 голосов
/ 05 сентября 2010

У меня есть следующий файл ASM, сгенерированный компилятором, который я пишу:

; This code has been generated by the 7Basic
; compiler <http://launchpad.net/7basic>

; Uninitialized data

      SECTION .bss
v_0 resb 4
v_4 resb 4
v_8 resb 4

; Code

      SECTION .text
push 1
pop eax
mov v_0, eax
push 2
pop eax
mov v_4, eax
mov eax, v_0
push eax
mov eax, v_4
push eax
pop ebx
pop eax
imul eax,ebx
push eax
pop eax
mov v_8, eax

Когда я пытаюсь его скомпилировать, я получаю следующие ошибки:

test.asm: 16: ошибка: недопустимая комбинация кода операции и операндов
test.asm: 19: ошибка: недопустимая комбинация кода операции и операндов
test.asm: 29: ошибка: недопустимая комбинация кода операции и операндов

Это действительно не имеет смысла, потому что согласно документам NASM, мне разрешено:

MOV mem_offs, reg_eax 386

Почемуя не могу выполнить эту операцию?

1 Ответ

2 голосов
/ 05 сентября 2010

Для разыменования указателей вам нужны квадратные скобки:

mov  [v_0], eax
...