2

我刚刚开始了一个完全用 Assembly 编码的大型项目。有多个子例程、宏、内存表等。我想知道如何最好地将代码拆分为多个文件。目标显然是更好的结构和更好的可读性。

目前我使用一个包含所有常量定义(.equ)的 .inc 文件,但是如何处理我的许多子例程?如果我想将它们放在另一个文件中,是否需要使用 .asm 文件(因为它包含可执行代码)?更笼统地说:.asm- 和 .inc-文件之间有什么区别,尤其是在最终将它们包含到一个主文件中时?

一旦我拆分了文件,我该如何处理多个依赖项(即文件 A 包括文件 B 和文件 C ,其中文件 B 也包括文件 C)。由于显然我当前的环境 Atmel Studio 6 不喜欢双重包含。

4

1 回答 1

0

还有一个更复杂的问题,它是寄存器分配。由于您正在编写所有代码,如果更多函数需要特定寄存器并且一个函数调用另一个函数,您可能会遇到麻烦。C编译器足够聪明,可以根据优化设置进行处理。如此大的 ASM 项目可能比 C 代码效率低。

于 2014-10-05T14:36:51.947 回答