ZHCU875Z August 2001 – October 2023 SM320F28335-EP
源程序列表显示了源语句及其生成的目标代码。若要获得源程序列表文件,请在调用汇编器时使用 --asm_listing 选项(请参阅节 4.3)。
每个源程序列表页面的顶部都有两个横幅行、一个空白行和一个标题行。由 .title 指令提供的任何标题都会列印在标题行中。页码会列印在标题的右侧。如果不使用 .title 指令,则会列印源文件的名称。汇编器会在标题行下插入一个空白行。
源文件中的每一行都会在源程序列表文件中生成至少一行。此行会显示源语句编号、SPC 值、汇编而来的目标代码以及源语句。图 4-2 显示了这些项目在实际源程序列表文件中的情况。
字段 1:源语句编号
行编号
源语句编号是十进制数。汇编器会按照源文件中出现的顺序对源代码行进行编号;一些语句会使行数计数器递增,但不会列出。(例如,.title 语句和跟在 .nolist 之后的语句不会列出。)两个连续源代码行编号之差表示源文件中这两个语句之间并未列出的语句数量。
包含文件字母
行编号前面的字母表示该行是从该字母所指定的包含文件汇编而来。
嵌套级别编号
行编号前面的数字表示宏扩展或循环块的嵌套级别。
字段 2:段程序计数器
此字段包含十六进制 SPC 值。所有段(.text、.data、.bss、.ebss 和命名段)都会维护单独的 SPC。一些指令不影响 SPC 并会将此字段留空。
字段 3:目标代码
此字段包含目标代码的十六进制表示形式。所有机器指令都使用此字段来列出目标代码。此字段还会指示与该行源代码的操作数相关联的重定位类型。如果多个操作数可以重定位,此列会指示第一个操作数的重定位类型。下面列出了会出现在此列的字符及关联的重定位类型:
! | 未定义的外部引用 | |
' | 可重定位的 .text | |
+ | 可重定位的 .sect | |
” | 可重定位的 .data | |
- | 可重定位的 .bss、.usect | |
% | 重定位表达式 |
字段 4:源语句字段
此字段包含源语句中由汇编器扫描而来的字符。汇编器每行最多可以接受 200 个字符。此字段中的空格方式由源语句中的空格方式决定。
图 4-2 显示了一个汇编列表,其中分别标出了这四个字段。