GNU汇编器

✍ dations ◷ 2025-08-13 21:25:25 #汇编器,GNU计划软件,自由编译器与直译器,Linux编程工具,Unix编程工具

GNU汇编器(英语:GNU assembler),是由GNU计划所使用的汇编器,一般称为gas,或依其可执行文件名称简称为as。它是GCC的默认后端。它用于汇编GNU操作系统、Linux内核以及其他各种软件。它是GNU Binutils包的一部分。

GAS的可执行文件被命名为as,Unix汇编器的标准名称。GAS是跨平台的,可以运行或为不同的计算机系统结构编译。GAS依据GNU通用公共许可证第三版发布,为自由软件。

GAS支持适用于所有支持架构的通用语法。通用语法包括汇编指令和注释方法。

GAS使用汇编器指令(也被称为伪操作),它们作为关键字指示开始一个时期,与C语言中的预处理指令表现相同。虽然无论目标架构如何,大多数可用的汇编指令都是有效的,但一些指令仍然因机器不同而不同。

GAS支持两种注释风格:

多行注释:

与C语言类似,以一对斜线-星号对开始和结束:

/* 注释*/

单行注释:

在不同的架构中汇编时,单行注释有几种不同的格式。

作为流行编译器包GCC的后端,GNU汇编器在编译现代开源软件中有非常广泛的应用。在Linux系统上,GAS经常用作与其他GNU软件结合的汇编器。因为OS X,修改后版本的GAS也可以在麦金塔操作系统的开发工具包中找到。

一个标准的“Hello, world!”程序,运行于Linux IA-32:

.globl _start.text_start: movl $len, %edx movl $msg, %ecx movl $1, %ebx movl $4, %eax int $0x80 movl $0, %ebx movl $1, %eax int $0x80.datamsg: .ascii "Hello, world!\n" len = . - msg

批评

那些更习惯于Intel语法的人认为,比起其他汇编器,在x86和x86-64平台上不支持使用Intel语法就是一大败笔。

然而,自从2.10版本,Intel语法可以通过使用.intel_syntax指令使用。

相关

  • 皮质醇皮质醇(法语:cortisol),又译成可的松(音译),属于肾上腺分泌的肾上腺皮质激素之中的糖皮质激素,在应付压力中扮演重要角色,故又被称为“压力荷尔蒙”。皮质醇会提高血压、血糖水平和产
  • 坦普尔大学天普大学(Temple University,或译为坦普尔大学,有时也被称作庙大),位于美国东岸宾夕法尼亚州费城的一所州关联性的综合性研究型大学,然而天普大学虽受宾州政府州款补助,但其校保有
  • 哈蒂-温伯格平衡哈代-温伯格定律,也称遗传平衡定律或哈代-温伯格平衡定律,分别在1908年和1909年由英国数学家G·H·哈代(Godfrey Harold Hardy)和德国医生威廉·温伯格(英语:Wilhelm Weinberg)(Wilh
  • 陆奥国陆奥国(日语:陸奥国〔陸奧國〕/むつのくに・りくおうのくに〔りくあうのくに〕 Mutsunokuni / Rikuōnokuni */?),日本古代的令制国之一,属东山道,又称奥州。陆奥国的领域在历史
  • 百夫长百夫长(英语:Centurion,拉丁语:Centurio,希腊语:κεντυρίων)是罗马军团中的职业军官,平时负责训练,战时负责指挥。大部分百夫长都各自领导一个百人队,但是也有较高等级的百夫
  • 素拉育·朱拉暖素拉育·朱拉暖(泰语:สุรยุทธ จุลานนท์,皇家转写:Surayut Chulanon;1943年8月28日-),1943年出生于泰国佛丕府,曾任陆军总司令,退役后担任泰国枢密院大臣。2006年10月1
  • 塞巴斯蒂安·康拉德塞巴斯蒂安·康拉德(德语:Sebastian Conrad,1966年-)是一名德国历史学家,专攻全球史、殖民史、史学史和东亚研究,2010年起担任柏林自由大学新历史教授。康拉德出生于西德海德堡,曾就
  • 文家街道 (成都市)文家街道是中华人民共和国四川省成都市青羊区所辖乡级行政区,位于青羊区西部。根据2006年的数据,辖区面积20.25平方公里,人口3万。街道下辖七里沟、大石桥、董家坝、马厂、康庄
  • 史丹利·艾林史丹利·艾林(Stanley Ellin,1916年10月6日-1986年7月31日),为美国推理小说作家。艾林出生于纽约的布鲁克林区,在成为推理作家前,他曾任职教师、钢铁工人、乳牛牧场农夫等,二战时并
  • 尼古拉·伊万诺维奇·穆拉洛夫尼古拉·伊万诺维奇·穆拉洛夫(俄语:Николай Иванович Муралов,1877年-1937年2月1日),苏联政治家、布尔什维克革命家。穆拉洛夫和阿列克谢·李可夫、亚历山