ZHCU947E June 2015 – January 2023
复制源文件
.copy "filename"
.include "filename"
.copy 和 .include 指令用于告诉汇编器从另一个文件读取源语句。从副本文件汇编的语句会列印在汇编列表中。汇编的 .list/.nolist 指令无论数量多少,从头文件中汇编的语句均不会 列印在汇编列表中。
在汇编 .copy 或 .include 指令后,汇编器会:
文件名 是指定源文件的必需参数。该参数用双引号引起来,并且必须遵循操作系统规则。
您可以指定完整路径名(例如,/320tools/file1.asm)。如果未指定完整路径名,汇编器将在以下位置搜索文件:
有关 --include_path 选项和 C6X_A_DIR 的更多信息,请参阅GUID-71F90135-11FF-48C0-A75B-9D3C48B9C235.html#GUID-71F90135-11FF-48C0-A75B-9D3C48B9C235。有关 C6X_C_DIR 的更多信息,请参阅 TMS320C6000 优化编译器用户指南。
.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 00000020 .byte 32,1+ 'A'
0000001e 00000042
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 0000006A .byte 67h + 3q
3
4 ** Back in original file
5 00000029 00000064 .string "done"
0000002a 0000006F
0000002b 0000006E
0000002c 00000065
在此示例中,.include 指令用于从其他文件读取和汇编源语句;然后,汇编器继续汇编到当前文件中。该机制类似于 .copy 指令,只是语句不会列印在列表文件中。
include.asm (源文件) |
byte2.asm (第一个副本文件) |
word2.asm (第二个副本文件) |
---|---|---|
|
|
|
列表文件:
1 00000000 .space 29
2 .include "byte2.asm"
3
4 ** Back in original file
5 00000029 00000064 .string "done"
0000002a 0000006F
0000002b 0000006E
0000002c 00000065