2010-09-05 7 views
0

Я следующий файл 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: error: invalid combination of opcode and operands
test.asm:19: error: invalid combination of opcode and operands
test.asm:29: error: invalid combination of opcode and operands

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

MOV    mem_offs, reg_eax    386

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

ответ

2

Вы должны квадратные скобки разыменовать указатели:

mov [v_0], eax 
+0

Спасибо! Это была проблема, все в порядке. –