GNU Assembler
Logo
VývojářGNU Project
Aktuální verze2.23.1 (13. listopadu 2012)
Operační systémmultiplatformní
Vyvíjeno vC
Typ softwaruPřekladač JSA
LicenceGNU General Public License v3
Webhttp://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

[editovat | editovat zdroj]

Direktivy

[editovat | editovat zdroj]

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

[editovat | editovat zdroj]

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

[editovat | editovat zdroj]

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á.

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í

[editovat | editovat zdroj]

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

[editovat | editovat zdroj]

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

[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku GNU Assembler na anglické Wikipedii.

  1. The GNU Assembler - Assembler Directives [online]. [cit. 2013-09-10]. Dostupné v archivu pořízeném dne 2012-02-22. 
  2. RED HAT INC. Using as [online]. [cit. 2013-09-09]. Dostupné online. 
  3. RED HAT INC. Using as [online]. [cit. 2012-03-11]. Dostupné v archivu pořízeném dne 2011-06-20. 
  4. GNU Assembler News [online]. Dostupné online. [nedostupný zdroj]