我发现当 %include "filename.asm" 放置在不同的位置时,我的汇编程序的执行方式不同。我在任何地方都找不到任何解释。任何人都可以阐明这一点吗?
问问题
132 次
1 回答
1
对于 NASM,%include
被包含的文件的内容替换;因此,有很多不同的方式%include
来影响生成的代码的位置。
举个简单的例子,假设您有一个名为“myfile.asm”的文件,其中包含以下内容:
foo: db 0
现在想象一个像这样的文件:
section .text
;%include "myfile.asm"
section .data
;%include "myfile.asm"
section .bss
;%include "myfile.asm"
在这种情况下, where%include
会影响放置哪个部分foo
及其数据;如果最后一个%include
没有注释,你会得到一个错误(试图把初始化的数据放在一个未初始化的数据部分)。
于 2013-11-02T08:42:18.953 回答