GNU Assembler

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání
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á.

  • 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 | 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]. Dostupné online. 
  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é online. 
  4. GNU Assembler News [online]. Dostupné online. [nedostupný zdroj]