2016-10-23 12 views
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を削除しないことをおすすめします。正しい構文があるよう

答えて

0

はルックス:

thing \@ 
関連する問題