GNU組譯器
GNU 組譯器(英語:GNU assembler), 是由 GNU 計畫所使用的組譯器,一般號做gas,抑是講按呢會當執行檔名簡稱做as。伊是 GCC 的預設了後端。伊用於組譯 GNU 作業系統、Linux 核心以及其他各種軟體。伊是 GNU Binutils 包的一部份。
GAS 的可執行檔予人號名做 as,Unix 組譯器的標準名稱。GAS 是迒平台的,會當執行抑是講無仝的電腦系統結構編譯。GAS 依據 GNU 通用公眾授權條款第三版釋出,為自由軟體。
通用語法
GAS 支援適用所有支援架構的通用語法。通用語法包括組譯指令佮注釋方法。
指令
GAS 使用組譯器指令(嘛予人稱做偽操作), 𪜶做關鍵字指示開始一个時期,佮 C 語言內底的預處理指令表現相仝。雖然無論目標架構按怎,大多數咧用的組譯指令攏是有效的,毋過一寡指令猶原因為機器無仝爾無仝。
注釋
GAS 支援兩種注釋風格:
多行注釋:
佮 C 語言類似,以一對斜線-星號嘿開始和結束:
` ` ` / * 注神
- /
` ` `
孤行注釋:
佇無仝款的架構中組譯的時陣,單行注釋有幾種無仝的格式。
- # 以下平台中:i 三百八十六,x 八十六陵六十四,i 九百六十,六十八 HC 十一,六十八 HC 十二,VAX , V 八仔五,m 三十二 r,M 八百八十 x 零。
- ; 以下平台中:AMD 二十九 k family,ARC,H 三百分之八 family,HPPA , PDP 鋪十一,picoJava,Motorola,PowerPC。
- @ 用佇咧 ARM 平台。
- | 用佇咧六百八十 x 零平台。
- ! 用佇咧 Renesas SH 平台。
用法
當做流行編譯器套件 GCC 的後端,GNU 組譯器佇咧編譯現代開源軟體內底喔有誠廣泛的應用。佇咧 Linux 系統上,GAS 定定用作佮其他 GNU 軟體結合的組譯器。因為乎 OS X , 修改過版本的 GAS 嘛會使佇麥金塔作業系統的開發工具包當中揣著。
範例程式
一个標準的「Hello , world !」程式,執行 Linux IA 鋪三十二:
批評
彼閣較慣勢 Intel 語法的人認為講,比其他的組譯器,佇咧 x 八十六佮 x 八十六鋪六十四平台頂攏無支援使用 Intel 語法就是一大敗筆。
毋過,自從二鋪一空版本,Intel 語法會當通過使用 ` . intel _ syntax ` 指令使用。
參見
- GNU toolchain
- 二進位檔案來講庫
- 組譯器列表
參考文獻
外部連結
- 官方網站
- Gas 手冊
- A comparison of GAS and NASM,佇佗位咧 IBM
- ` as ` : the portable GNU assembler – 參考,單一 UNIX® 規範第七期,由國際開放標準組織釋出