【发布时间】:2013-06-02 15:29:24
【问题描述】:
我又在学习汇编编程的基础知识了。我正在通过Assembly Language Step-by-Step: Programming with 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] 之类的东西?
【问题讨论】:
标签: assembly nasm increment memory-address