在NASM代码中放置%include指令的位置是否相关?

时间:2013-11-02 07:38:22

标签: assembly nasm

我发现当%include" filename.asm"时,我的汇编程序执行的方式不同。放在不同的位置。我无法在任何地方找到任何解释。有人能说清楚这个吗?

1 个答案:

答案 0 :(得分:1)

对于NASM,%include将被包含的文件内容替换;因此,%include的位置有很多不同的方式来影响生成的代码。

举一个简单的例子,假设你有一个名为“myfile.asm”的文件,其中包含:

foo:    db 0

现在想象一下这样的文件:

    section .text
;%include "myfile.asm"
    section .data
;%include "myfile.asm"
    section .bss
;%include "myfile.asm"

在这种情况下,%include是哪个部分foo及其数据被放置的效果;如果最后一个%include被取消注释,则会出现错误(尝试将初始化数据放入未初始化的数据部分)。