assembler
Obsah
Assembler (Jazyk symbolických adres)
Assembler je nejnižší úroveň programování, jakou může člověk provádět, aniž by musel psát přímo v nulách a jedničkách. Každá rodina procesorů (x86, ARM, RISC-V) má svůj vlastní specifický assembler.
1. Jak assembler funguje?
Zatímco jazyky jako C++, Python nebo Java jsou „abstraktní“ (neřeší, jak přesně procesor pracuje), v assembleru programátor přímo ovládá:
- Registry: Extrémně rychlá paměťová místa v CPU (např. EAX).
- Paměť (RAM): Přesné adresování dat v operační paměti.
- Vlajky (Flags): Stavové bity, které říkají, zda byl výsledek operace nula, záporný atd.
Program napsaný v assembleru musí být zpracován programem nazývaným asemblér (překladač), který textové instrukce převede na binární strojový kód.
2. Ukázka kódu (Architektura x86)
Tento jednoduchý kód sečte dvě čísla:
MOV EAX, 5 ; Vlož číslo 5 do registru EAX MOV EBX, 10 ; Vlož číslo 10 do registru EBX ADD EAX, EBX ; Sečti hodnoty v EAX a EBX, výsledek (15) ulož do EAX
3. Výhody a nevýhody
| Vlastnost | Popis |
|---|---|
| Rychlost | Extrémní. Dobře napsaný kód v assembleru je nejrychlejší možný software. |
| Velikost | Minimální. Výsledné soubory jsou velmi malé. |
| Přenositelnost | Žádná. Kód pro Intel PC nebude fungovat na iPhonu (ARM). |
| Složitost | Velmi vysoká. Napsání složitého programu trvá mnohem déle než v C#. |
4. Kdy se assembler používá dnes?
I když většina aplikací vzniká ve vyšších jazycích, assembler je nepostradatelný v těchto oblastech:
- Ovladače (Drivers): Přímá komunikace s hardwarem.
- Embedded systémy: Programování mikročipů v pračkách, automobilech nebo hračkách.
- Jádra operačních systémů: Části Windows nebo Linuxu, které spravují paměť a procesory.
- Reverzní inženýrství: Analýza malwaru nebo crackování softwaru pomocí disassemblerů.
5. Slavné asembléry (Nástroje)
- NASM (Netwide Assembler): Velmi populární, open-source, pro x86.
- MASM (Microsoft Macro Assembler): Standard pro vývoj pod Windows.
- GAS (GNU Assembler): Součást balíku GCC, používaný v Linuxu.
Zajímavost: První počítačové hry (např. RollerCoaster Tycoon z roku 1999) byly napsány téměř celé v assembleru, aby běžely plynule i na tehdejším slabém hardwaru. Dnes je to u takto velkých projektů téměř nemyslitelné.
assembler.txt · Poslední úprava: autor: admin
