-a[sub-option...] turn on listings
Sub-options [default hls]:
c omit false conditionals
d omit debugging directives
g include general info
h include high-level source
l include assembly
m include macro expansions
n omit forms processing
s include symbols
=FILE list to FILE (must be last sub-option)
1条答案
按热度按时间iecba09b1#
假设你提到的gcc是GNU汇编程序,你可以生成一个包含
.macro
扩展的列表文件,它在the manual中没有提到,但在as --help
中确实出现了:看起来
-am
是你想要的,但实际上它产生了一个空的列表文件。因此,如果您的源代码是
您可以
并在
foo.lst
中获得以下内容:宏扩展显示在第5行。
关于您对
gcc -E
的评论,了解GNU工具链提供了两种完全独立的方式来在汇编中使用宏,这将有助于理解:#define
风格的宏,就像Frant的答案一样。你可以自动地将文件命名为带有大写S的foo.S
,然后使用gcc
进行汇编,比如gcc -c foo.S
。.macro
风格的宏是由汇编器自己处理的,与C预处理器无关,这就是gcc -E
没有任何作用的原因。