ZHCUAV7Z september 1995 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
复制源文件
.copy "filename"
.include "filename"
.copy 和 .include 指令用于告诉汇编器从另一个文件读取源语句。从副本文件汇编的语句会列印在汇编列表中。汇编的 .list/.nolist 指令无论数量多少,从头文件中汇编的语句均不会 列印在汇编列表中。
在汇编 .copy 或 .include 指令后,汇编器会:
文件名 是指定源文件的必需参数。该参数用双引号引起来,并且必须遵循操作系统规则。
您可以指定完整路径名(例如,/320tools/file1.asm)。如果未指定完整路径名,汇编器将在以下位置搜索文件:
有关 --include_path 选项和 TI_ARM_A_DIR 的更多信息,请参阅节 4.5。有关 TI_ARM_C_DIR 的更多信息,请参阅 ARM 优化 C/C++ 编译器用户指南。
.copy 和 .include 指令可以嵌套在所复制或包含的文件中。汇编器将嵌套限制为 32 级;主机操作系统可能会设置额外的限制。汇编器在复制文件的行号之前加上一个字母代码来标识复制级别。A 表示第一个复制的文件,B 表示第二个复制的文件,以此类推。
在此示例中,.copy 指令用于从其他文件读取和汇编源语句;然后,汇编器继续汇编到当前文件中。
原始文件 copy.asm 包含一条用于复制文件 byte.asm 的 .copy 语句。当 copy.asm 进行汇编时,汇编器会将 byte.asm 复制到它在列表中的位置(注意下面的列表)。副本文件 byte.asm 包含用于第二个文件 word.asm 的 .copy 语句。
当遇到 word.asm 的 .copy 语句时,汇编器会切换到 word.asm 以继续复制和汇编。然后,汇编器返回到它在 byte.asm 中的位置以继续进行复制和汇编。完成 byte.asm 的汇编后,汇编器返回到 copy.asm 以汇编其剩余的语句。
copy.asm (源文件) |
byte.asm (第一个副本文件) |
word.asm (第二个副本文件) |
---|---|---|
|
|
|
列表文件:
1 00000000 .space 29
2 .copy "byte.asm"
A 1 ** In byte.asm
A 2 0000001d 20 .byte 32,1+ 'A'
0000001e 42
A 3 .copy "word.asm"
B 1 ** In word.asm
B 2 00000020 0000ABCD .word 0ABCDh, 56q
00000024 0000002E
A 4 ** Back in byte.asm
A 5 00000028 6A .byte 67h + 3q
3
4 ** Back in original file
5 00000029 64 .string "done"
0000002a 6F
0000002b 6E
0000002c 65
在此示例中,.include 指令用于从其他文件读取和汇编源语句;然后,汇编器继续汇编到当前文件中。该机制类似于 .copy 指令,只是语句不会列印在列表文件中。
include.asm (源文件) |
byte2.asm (第一个副本文件) |
word2.asm (第二个副本文件) |
---|---|---|
|
|
|
列表文件:
1 00000000 .space 29
2 .include "byte2.asm"
3
4 ** Back in original file
5 00000029 64 .string "done"
0000002a 6F
0000002b 6E
0000002c 65