为什么这是一个无效的操作数?

时间:2010-09-05 04:12:25

标签: assembly nasm opcode operand

我正在编写的编译器生成以下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 个答案:

答案 0 :(得分:2)

您需要方括号来取消引用指针:

mov  [v_0], eax