0
だから私はこの問題を示すために、最小限のスニペット(モジュロ実際にコンパイルとリンク)であるファイルを、.Sあります文字列 "@"を引数としてGNUにマクロとして渡しますか?
.altmacro
.macro thing word
.asciz "\word\()"
.endm
.section .rodata
.global data_stuff
.type data_stuff, %object
data_stuff:
thing foo
thing bar
thing @
thing baz
.asciz "@"
この結果、最終的なリストには、次のとおりです。
00004c94 <data_stuff>:
4c94: 006f6f66 00726162 7a616200 ff004000 [email protected]
.altmacro
によってトリガーされた拡張が、とbaz
の間の@
で望ましくないことを行ったことがわかります。残念ながら、.asciz
ディレクティブを含むより複雑なマクロでは、.altmacro
の展開が必要です。
マクロを特定の引数を展開しないようにするにはどうすればよいですか? .altmacro
を削除しないことをおすすめします。正しい構文があるよう