我再次学习汇编编程的基础知识。我正在逐步学习汇编语言:使用 Linux 编程。
我正在使用 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]
什么?