Intel 構文には、セミコロンを使用したコメントがあります。AT&T に切り替えたとき、実際にコメントを解釈しようとしました。
AT&T アセンブリのコメント構文は何ですか?
Intel 構文には、セミコロンを使用したコメントがあります。AT&T に切り替えたとき、実際にコメントを解釈しようとしました。
AT&T アセンブリのコメント構文は何ですか?
at&t アセンブラーのコメントは次のとおりです。
# this is a comment
/* this is a comment */
//
GCC はアセンブル前に C プリプロセッサを実行するため、/* */
コメントはファイルでのみサポートされます。.S
ファイルの場合.s
、実際のアセンブラ自体 ( )は、x86 の場合、コメント文字としてas
のみ処理されます。#
他の一部の ISA では、GAS は@
ARM などの他のコメント文字を使用します。
以下はas
直営で取り扱っております。(C プリプロセッサではありません。)
#
コメント - 「残りの行」コメントとして機能します。
重要な警告:#
は GCC プリプロセッサ ディレクティブ シンボルでもあります。プリプロセッサが最初に実行されるため、これを実行している場合、
# include comments in your code to get full credit
行の先頭 (空白はカウントされません) は、.error: #include expects "FILENAME" or <FILENAME>
の後にスペースがあっても、gccを提供します#
。
ただし、これらは大文字と小文字が区別されるため、大文字化# Include
は実際には機能します。
# Include comments in your code to get full credit
とにかくコメントの最初の文字を大文字にすることは一般的に良い習慣ですが、念のため##
の手段として使用することができます. (トークン貼り付け演算子でもある#define
ため、マクロの一部である行では使用しないでください。)##
/
コメント - 行頭コメント
これらは、行頭 (空白の削除後) でのみ使用できます。
/ This is OK
xor %eax, %eax / This is *not* ok
これらは、C プリプロセッサがソース ファイルで実行されている場合に機能します。
ほとんどのアーキテクチャでは、以下がサポートされています。
// Rest of line comment
C に期待するとおりに動作します。
まれに、これにより.
疑似操作で問題が発生します。これを回避するには、ブロック コメントを使用するか、コメントを前の行に移動します。
/* Use this for block comments */
. 現在、これに関する問題は発生していません。
#
、/
.//
を使用/**/
してプリプロセッサの問題を回避する方が安全かもしれません。ただし、隠れた落とし穴を心に留めておけば、大丈夫です。/
し##
てください。いずれかのファイルでプリプロセッサまたはプリプロセッサが不足していることを心配する必要はありません。##
より汎用性がありますが、より複雑なコードになる可能性があります。