gas
GAS (GNU Assembler)
GAS (často volaný příkazem as) je multiplatformní nástroj, který podporuje desítky různých architektur procesorů (x86, ARM, MIPS, RISC-V atd.). Jeho nejvýraznějším rysem je tradiční používání AT&T syntaxe, která se výrazně liší od syntaxe Intel používané ve Windows.
1. AT&T vs. Intel Syntaxe
Pro začátečníky může být GAS matoucí, protože pravidla zápisu jsou v AT&T syntaxi „obráceně“ oproti standardu Intel:
| Vlastnost | AT&T (GAS výchozí) | Intel (NASM/MASM) |
|---|---|---|
| Pořadí operandů | Zdroj, Cíl (mov %eax, %ebx) | Cíl, Zdroj (mov ebx, eax) |
| Registry | Musí mít předponu % (%eax) | Bez předpony (eax) |
| Konstanty |
3. Klíčové vlastnosti
- Multiplatformnost: Díky knihovně BFD (Binary File Descriptor) dokáže generovat kód pro nepřeberné množství platforem.
- Podpora maker: Umožňuje definovat složité opakující se bloky kódu.
- Integrace s C: Je navržen tak, aby hladce spolupracoval s výstupem z kompilátoru jazyka C, což z něj činí klíčový nástroj pro vývoj jader (kernelů).
4. Použití v praxi
GAS je de facto standardem pro psaní nízkoúrovňových částí v Linuxu. Pokud například zkoumáte zdrojové kódy jádra Linuxu a nar
gas.txt · Poslední úprava: autor: admin
