我发现当%include" filename.asm"时,我的汇编程序执行的方式不同。放在不同的位置。我无法在任何地方找到任何解释。有人能说清楚这个吗?
答案 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
被取消注释,则会出现错误(尝试将初始化数据放入未初始化的数据部分)。