[英]Commenting syntax for x86 AT&T syntax assembly
Intel 語法有使用分號的注釋。 當我切換到 AT&T 時,它實際上試圖解釋這些評論。
AT&T 匯編的注釋語法是什么?
對 at&t 匯編程序的評論是:
# this is a comment
/* this is a comment */
//
和/* */
注釋僅在.S
文件中受支持,因為 GCC 在組裝之前對它們運行 C 預處理器。 對於.s
文件,實際的匯編器本身 ( as
) 僅將#
作為注釋字符處理,對於 x86。
對於其他一些 ISA,GAS 使用其他注釋字符,例如@
代表 ARM。
以下由as
直接處理。 (不是 C 預處理器。)
#
注釋 - 用作“行的其余部分”注釋。
重要警告: #
也是 GCC 預處理器指令符號。 預處理器首先運行,所以這意味着如果你正在運行它,
# include comments in your code to get full credit
在行的開頭(空格不計算在內)會給你error: #include expects "FILENAME" or <FILENAME>
with 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 */
. 我目前還沒有遇到任何問題。
#
或/
。//
和/**/
可能更安全,以避免預處理器問題。 但是,如果您牢記隱藏的陷阱,您應該沒問題。/
或##
這樣您就不必擔心預處理器或任何一個文件中缺少預處理器。 ##
更通用,但可能會導致代碼更混亂。嘗試 # 或 // 或 /* */。 可能有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.