0

我发现当 %include "filename.asm" 放置在不同的位置时,我的汇编程序的执行方式不同。我在任何地方都找不到任何解释。任何人都可以阐明这一点吗?

4

1 回答 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 回答