[英]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.