我正在重新学习装配编程的基础知识。我正在慢慢努力通过Assembly Language Step-by-Step: Programming with Linux。NASM装配编程 - 递增地址
我正在使用NASM在64位Slackware机器(x86-x64)上工作。
我对增加地址的含义有点困惑。在我的bss
部分,我有一个Buffer resb 4096
缓冲区。在text
部分,我的地址分配给esi
:
mov esi, Buffer
后来,我inc esi
。这似乎将esi
提前到下一个字节偏移量。我有点惊讶 - 我期待esi
提前4个字节,因为它是一个32位寄存器。
我可以假设增加一个地址将一直移动一个字节吗?我会用add esi, 4
来推进32位吗?
当我想填写一个32位寄存器时,是否必须明确要求4个字节?像mov eax, DWORD [esi]
?
这实际上使我做得更容易。我担心我必须一次处理4个字节。 –