2013-10-16 35 views
0

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

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

显然我只是试图检索命令行参数的数量。如果有更简单的方法可以做到这一点,我就会全神贯注,但我特别关心为什么我无法将值存入内存缓冲区。

回答

2

你不能像这样将内存移动到内存中。你必须做

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

或者:

push dword [esp+4] 
pop dword [numArgs] 
相关问题