GNU汇编器

✍ dations ◷ 2025-11-12 11:42:46 #汇编器,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指令使用。

相关

  • 侵入性监测生理监视器是一种电子医学装置,用来作为医疗用途监视,并且显示所监视的资料以及可能具备资料传送能力。生理资料被显示在阴极射线管、发光二极管或是液晶显示器上。萤幕上显示
  • 约翰·沃克约翰·沃克(John Walker)可以指:
  • 原子序原子序数(英语:Atomic Number)是一个原子核内质子的数量,因此也称质子数,也等于原子电中性时的核外电子数。拥有同一原子序的原子属于同一化学元素。原子序数的符号是Z。通常原子
  • 阿留申语西-中部方言: 60–80 使用者、 东部方言: 400 使用者(日期不详)阿留申语(英语:Aleut、阿留申语:Unangam Tunuu)属爱斯基摩-阿留申语系,是阿留申人的母语。美国阿拉斯加州(Alaska)的州
  • 彭春彭春(?-1699年),又作朋春,清朝满洲正红旗人,董鄂氏。康熙时历任太子太保、副都统、都统。和郎坦率军视察雅克萨形势。康熙二十四年(1685年),和郎坦率领林兴珠等将领围攻雅克萨,俄罗斯将
  • 肖邦国际钢琴比赛肖邦国际钢琴比赛(波兰语:Międzynarodowy Konkurs Pianistyczny im. Fryderyka Chopina)是五年一度的国际钢琴比赛,1927年由波兰钢琴家茹拉夫莱夫(英语:Jerzy Żurawlew)创办,于著
  • 今泉忠明今泉忠明(1944年-),(日语:今泉忠明),日本生物学家与作家。出身于日本东京的一个生物学家家庭。毕业于日本东京水产大学。后于日本上野动物园担任解说员。曾担任日本猫科动物研究所所
  • 詹姆士·帕克,第一代文斯利代尔男爵詹姆士·帕克,第一代文斯利代尔男爵,PC(James Parke, 1st Baron Wensleydale,1782年3月22日-1868年2月25日),1828年至1856年间称为詹姆士·帕克爵士(Sir James Parke),英国资深法官,181
  • 埃皮塔西奥·达席尔瓦·佩索阿埃皮塔西奥·林道尔夫·达席尔瓦·佩索阿(Epitácio Lindolfo da Silva Pessoa,1865年5月23日-1942年2月13日),巴西政治家,1919年他曾代表巴西签定凡尔赛条约,并仍在凡尔赛时当选巴
  • 第三次英国-阿富汗战争《拉瓦尔品第条约》 大英帝国第三次英国-阿富汗战争,又称第三次阿富汗战争,始于1919年5月6日,同年8月8日结束。英国获得了战术上的胜利。战后,重新确认了杜兰线作为阿富汗酋长国