GNU組譯器(英語:GNU assembler),是由GNU計劃所使用的組譯器,一般稱為gas,或依其可執行檔案名稱簡稱為as。它是GCC的預設後端。它用於組譯GNU作業系統、Linux內核以及其他各種軟件。它是GNU Binutils包的一部分。
GAS的可執行檔案被命名為as,Unix組譯器的標準名稱。GAS是跨平台的,可以執行或為不同的電腦系統結構編譯。GAS依據GNU通用公眾特許條款第三版釋出,為自由軟件。
通用語法
GAS支援適用於所有支援架構的通用語法。通用語法包括組譯指令和註釋方法。
GAS使用組譯器指令(也被稱為偽操作),它們作為關鍵字指示開始一個時期,與C語言中的預處理指令表現相同。雖然無論目標架構如何,大多數可用的組譯指令都是有效的,但一些指令仍然因機器不同而不同。[1]
GAS支援兩種註釋風格:[2]
多行註釋:
/* 注释 */
單行註釋:
在不同的架構中組譯時,單行註釋有幾種不同的格式。
用法
作為流行編譯器套件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
.data
msg:
.ascii "Hello, world!\n"
len = . - msg
批評
參見
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.