查看“GAS”的源代码
←
GAS
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{Stub}} {{Infobox_Tool |name=GNU Assembler |website=http://www.gnu.org/software/binutils/ }} “'''GNU 汇编器'''(简称'''GAS''',可执行文件名也是'gas')是[[binutils]]包的一部分。 [[GCC]] 生成 [[Assembly|汇编]] 源代码,并自动调用GAS,该GAS将代码汇编为 [[Object Files|目标文件]] 中的机器代码。 GCC允许开发人员使用内联汇编功能将汇编直接转发给汇编程序。 GAS不是 '一个' 单独的汇编程序,而是汇编程序的集合- GCC支持的每个平台各有一个。 它们在可用选项、宏语言等方面非常相似。 GAS提供了一个非常可靠且支持良好的汇编程序,它与其他GNU工具完全集成(隐式的<tt>make</tt>规则,来自C/C++源代码的内联汇编,可以被<tt>gcc-o myfile.o myfile.s</tt>调用,所有工具都使用相同的汇编语法)。 = = 用法 = = ==AT&T语法=== AT&T汇编语法对于在 [[x86]] 和 [[x86-64]] 平台上的类Unix操作系统是较为传统的语法。 这种语法让人想起了原始Unix操作系统中使用的原始汇编程序格式。 指令的操作数顺序是源,然后是目标。 汇编语言明确寄存器必须以<tt>%</tt>字符作为前缀,常量必须以<tt>$</tt>字符作为前缀。 === Intel语法支持 === 直到v2.10的binutils中,GAS只支持[[x86]]和[[x86-64]]的AT&T语法,这与几乎所有其他汇编程序使用的Intel语法有很大不同。 如今,GAS同时支持语法集 (<tt>.intel_syntax</tt> 和默认的 <tt>.att_syntax</tt>),甚至允许禁用其他强制性的操作数前缀 “%” 或 “$” (<tt>..._ syntax noprefix</tt>)。 这里''有''一些陷阱 - 几个FP操作码遭受反向操作数排序的困扰,由于兼容性的原因,该操作数排序必然会停留在那里, <tt>.intel_syntax</tt>选项有时会生成优化程度较低的操作码 (尝试<tt>mov</tt>ing到%si...)。 通常不鼓励使用对Intel语法的支持,因为它可能与其他汇编器中真正使用的Intel语法存在较为诡异地不同。 如果需要英特尔语法,则应考虑[[Tool Comparison|不同的汇编程序]]。 = = 另见 = = ==文章=== * [[Assembly|汇编]] *[[Tool Comparison|工具比较]] * [[Wikipedia:GNU Assembler|GNU汇编程序]] -维基百科 *[[Wikibooks:X86 Assembly/GAS Syntax|GAS语法]]-Wikibook === 外部链接 === * [https://sourceware.org/binutils/docs/as/ GNU as official manual] [[Category:Assemblers]] [[Category:Binutils]]
本页使用的模板:
模板:If
(
查看源代码
)
模板:Infobox Tool
(
查看源代码
)
模板:Show1
(
查看源代码
)
模板:Stub
(
查看源代码
)
返回至“
GAS
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息