我真的迷失在这里,因为无论我如何尝试这段代码,我都会得到无效的操作码和操作数错误组合。我在.bss中声明了一个缓冲区,但是我无法从寄存器中将值移到该位置,我无法弄清楚原因。
numArgs: resb 4
mov dword numArgs, [esp+4]
显然,我只是想检索给定的命令行参数的数量。如果有更简单的方法,我会全力以赴,但我特别关注为什么我可以将值移动到内存缓冲区中。
答案 0 :(得分:2)
你无法将内存移动到内存中。你必须要做
mov eax,[esp+4]
mov [numArgs],eax
或者:
push dword [esp+4]
pop dword [numArgs]