ZHCUAV8W january 1998 – 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
編譯器工具包括將 C/C++ 源語句插入到編譯器的匯編語言輸出中的功能。交叉列出功能可用于檢查為每個 C 語句生成的匯編代碼。交叉列出的行為有所不同,具體取決于是否使用了優化器以及指定了哪些選項。
調用交叉列出功能的最簡單方法是使用 --c_src_interlist 選項。要在名為 function.c 的程序上編譯和運行交叉列出功能,請輸入:
armcl --c_src_interlist function--c_src_interlist 選項阻止編譯器刪除交叉列出的匯編語言輸出文件。輸出匯編文件 function.asm 被正常匯編。
在沒有優化器的情況下調用交叉列出功能時,交叉列出將作為代碼生成器與匯編器之間的單獨通道運行。該功能讀取匯編和 C/C++ 源文件,合并這些文件,然后將 C/C++ 語句作為注釋寫入匯編文件中。
有關將交叉列出功能與優化器一起使用的信息,請參閱節 3.11。使用 --c_src_interlist 選項會導致性能和/或代碼大小下降。
以下示例顯示了一個典型的交叉列出的匯編文件。
_main:
STMFD SP!, {LR}
;------------------------------------------------------------------------------
; 5 | printf("Hello, world\n");
;------------------------------------------------------------------------------
ADR A1, SL1
BL _printf
;------------------------------------------------------------------------------
; 6 | return 0;
;------------------------------------------------------------------------------
MOV A1, #0
LDMFD SP!, {PC}