GNU Assembler

programovací jazyk

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.

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.

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

Direktivy editovat

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

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

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í editovat

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

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

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]