GNU Assembler

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more 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.

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.

Komentáře

GAS podporuje dva styly psaní komentářů, víceřádkové a jednořádkové.

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. +more * 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. +more 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.

Standardní “Ahoj, světe. ” program pro Linux [url=https://web. +morearchive. org/web/20150412140336/http://bepam. net/factory/bep-ga-am-kinh-bep-ga-binova_22_16_4. html]Binova[/url] 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

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top