GNU Assembler
![]() | |
Vývojář | GNU Project |
---|---|
Aktuální verze | 2.23.1 (13. listopadu 2012) |
Operační systém | multiplatformní |
Vyvíjeno v | C |
Typ softwaru | Překladač JSA |
Licence | GNU General Public License v3 |
Web | http://www.gnu.org/software/binutils/ |
Některá data mohou pocházet z datové položky. |
GNU Assembler, známý jako gas nebo jednoduše as, je překladač jazyka symbolických adres, nazývaný Assembler, používaný v Projektu GNU. Používá se pro překlad GNU operačního systému, Linuxového jádra a různého dalšího softwaru. Je součástí balíku GNU binutils.
Spustitelný soubor GASu je v Unixu standardně pojmenován as, což označuje výchozí assembler. GAS je multiplatformní, funguje a zároveň překládá na mnoha různých architekturách. Je vydán pod licencí GNU General Public License v3 a je označován jako svobodný software.
Obecná syntaxe
Direktivy
GAS používá direktivy (někdy nazývané pseudo operace), což jsou klíčová slova začínající tečkou, které fungují podobně jako direktivy preprocesoru v jazyce C. Většina těchto direktiv je platná pro všechny platformy, ale jsou i konkrétní pro vybrané platformy.[1]
Konstanty
Konstanty se zapisují jako direktivy s určeným datovým typem a hodnotou, která může být zapsaná ve více formách.[2]
Komentáře
GAS podporuje dva styly psaní komentářů, víceřádkové a jednořádkové.[3]
Jednořádkové komentáře mají několik různých formátů, závisejících na tom pro jakou platformu se překládá.
- Křížek se používá pro platformy: i386, x86-64, i960, 68HC11, 68HC12, VAX, V850, m32r, a M880x0.
- Středníky je použit na: AMD 29K, ARC, H8/300, HPPA, PDP-11, picoJava, Motorola, a PowerPC.
- Symbol zavináče je používán na platformě ARM.
- Svislá čára se používá pro 680x0.
- Vykřičník je na platformě Renesas SH.
Víceřádkové komentáře, stejně jako v C, začínají a končí zrcadlícím se lomítkem s hvězdičkou:
/* komentář */
Použití
Používá se jako back-end pro populární sadu překladačů GCC. I díky tomu je GNU Assembler široce používaný při kompilování moderního open source softwaru. GAS je často používán jako assembler na Linuxových operačních systémech ve spojení s dalším GNU softwarem. Modifikovanou verzi lze také nalézt ve vývojových nástrojích pro operační systém Macintosh od doby OS X.
Příklad programu
Od verze 2.10, lze využít i klasickou Intel syntaxi, při použití .intel_syntax
direktivy.[4]
Standardní “Ahoj, světe!” program pro Linux Binova na architektuře 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 "Ahoj, svete!\n" len = . - msg
Reference
V tomto článku byl použit překlad textu z článku GNU Assembler na anglické Wikipedii.
- ↑ The GNU Assembler - Assembler Directives [online]. [cit. 2013-09-10]. Dostupné v archivu pořízeném dne 2012-02-22.
- ↑ RED HAT INC. Using as [online]. [cit. 2013-09-09]. Dostupné online.
- ↑ RED HAT INC. Using as [online]. [cit. 2012-03-11]. Dostupné v archivu pořízeném dne 2011-06-20.
- ↑ GNU Assembler News [online]. Dostupné online. [nedostupný zdroj]