NASM MOV从寄存器到缓冲区

时间:2013-10-16 15:23:17

标签: assembly syntax nasm

我真的迷失在这里,因为无论我如何尝试这段代码,我都会得到无效的操作码和操作数错误组合。我在.bss中声明了一个缓冲区,但是我无法从寄存器中将值移到该位置,我无法弄清楚原因。

    numArgs:     resb 4
    mov dword    numArgs, [esp+4]

显然,我只是想检索给定的命令行参数的数量。如果有更简单的方法,我会全力以赴,但我特别关注为什么我可以将值移动到内存缓冲区中。

1 个答案:

答案 0 :(得分:2)

你无法将内存移动到内存中。你必须要做

mov eax,[esp+4]
mov [numArgs],eax

或者:

push dword [esp+4]
pop dword [numArgs]