GNU汇编器

✍ dations ◷ 2025-02-23 22:30:59 #汇编器,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指令使用。

相关

  • 朱赛贝·托纳多雷朱赛贝·托纳多雷(意大利语:Giuseppe Tornatore,1956年5月27日-),意大利电影导演,生于意大利西西里,奥斯卡最佳外语片奖获奖者。早年从事摄影工作,作品曾多次参加国际比赛得奖,曾任电
  • 布法罗纽约州立大学布法罗分校(英语:State University of New York at Buffalo),又名布法罗大学(英语:University at Buffalo,UB),是纽约州立大学系统中规模最大、综合性最强的研究型大学,位
  • 地域大国地域大国或称区域强权,指在国际关系中,一个在某个地理区域内拥有较大影响力的国家。这些国家被认为是控制某个地区安全性的关键国家,所掌握的影响力与实力能够让它们成为一地区
  • 氧化镭氧化镭是一种无机化合物,化学式为RaO,有强放射性。镭在空气中的燃烧会产生氧化镭,但是同时也有过氧化镭(RaO2)和氮化镭(Ra3N2)生成。氧化镭可以和水反应,生成氢氧化镭:
  • 内村鉴三内村鉴三(1861年3月26日-1930年3月28日)是明治及大正时代的日本作家、基督徒和传教士。提倡以基于福音主义与自身对社会的批判的无教会主义。内村鉴三出生于江户。内村自幼显
  • 事业手印在无上瑜伽部中,事业手印(梵语:Karmamudrā),又称业印、行印,是一种瑜伽,经由与人类女性(实体明妃)之间的性行为来进行,是双身法修行的方法之一。为圆满次第的一部分。那洛六法中,将双
  • 藤原友佳藤原友佳(1985年3月30日-)。是日本漫画家。绰号:友佳。血型O型,身高152公分,日本爱知县出身。藤原友佳为本名,但笔名换成平假名标示的藤原ゆか(ふじわら ゆか)。目前为りぼん的连载漫
  • 冈田吉夫冈田吉夫(日语:岡田 吉夫/おかだ よしお ,1926年8月11日-2002年6月22日),日本足球运动员,前日本国家足球队成员。从1951年到1954年,他共为日本国家足球队出场7次。2002年6月22日,因心
  • 浪花礁浪花礁(英语:Bombay Reef),是西沙群岛宣德群岛最南的环礁,位于东岛环礁的南面。环礁发育完整,合围潟湖。这里暗礁很多,礁盘接近海面有明显浪花带,故得名,又称“蓬勃礁”(越南语:Đá B
  • 阿图尔·德·赫里夫 (网球运动员)阿图尔·德·赫里夫(Arthur De Greef,1992年3月27日-)出生于布鲁塞尔,是一位比利时职业网球男运动员,右撇子。他于2017年法国网球公开赛上完成了个人的四大满贯赛单打赛事正赛首秀