【问题标题】:Why is this an invalid operand?为什么这是一个无效的操作数?
【发布时间】:2011-04-08 09:11:07
【问题描述】:

我有以下由我正在编写的编译器生成的 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

为什么我不能执行这个操作?

【问题讨论】:

    标签: assembly nasm opcode operand


    【解决方案1】:

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

    mov  [v_0], eax
    

    【讨论】:

      猜你喜欢
      • 2014-08-01
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 2019-04-11
      • 2017-03-27
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多