Poslední aktualizace : 10.4. 1999
 |
Assembler na x86 |
 |
Podle těchto několika stránek se můžeš naučit programovat v jazyku
assembler pro procesory řady x86. Jazyk je zde rozebírán dost do detailů
(alespoň v prvních lekcích), na konci každé lekce jsou jakási cvičení
a mnou napsané vzorové řešení. V budoucnu se zde objeví např. stránka
věnovaná psaní residentních programů, zabrousíme do technik používaných
viry nebo si třeba můžeš zkusit napsat engine pro plošinovku. Samozřejmě
pouze pokud budu mít čas a náladu psát.
Dost lákavých úvodů, jdeme na to.
Assembler jazyk, ve kterém píšeš přímo instrukce pro procesor. Překladem
vznikne normální EXE nebo COM, v nichž je assembler ve formě, které procesor
rozumí. V jazyce assembler bys těžko hledal věci běžné např. z Pascalu.
WRITE, WHILE, IF a další příkazy neexistují, existují pouze instrukce.
Ale naopak skoky a návěští najdeš na každé desáté řádce. Budeš si prostě
muset zvyknout na jiný způsob programování.
Na konci každé kapitoly bude několik příkladů k naprogramování včetně
jejich (téměř) vzorově napsaných řešení.
Nyní několik poznámek, které jsem sem přidával během psaní :
- Předpoklad pro pochopení tohoto kurzu je alespoň malá znalost
jazyka Pascal nebo C(ono je to stejný). Jazyk assembler stejně vyžaduje
jistou znalost počítačů a programování, takže to asi nebude žádný
problém.
- Pokud něčemu nebudeš rozumět, vykašli se na to a pokračuj dál.
Když se ti nebude jasné ani později, napiš mi dopis,
já ti odepíšu a pokusím se to co nejdříve nějak upřesnit.
- Veškeré vypravování se bude týkat reálného režimu. V protected modu
se sice dost věcí chová stejně, ale např. adresování je úplně jinak.
- Doporučuji sehnat si program SYSMAN(nebo TechHelp nebo
jakýkoliv jiný manuál), bez kterého se (podle mě) nedá skoro nic napsat.
Navíc zde nehodlám opisovat služby DOSu, BIOSu a další a další věci. Jinými
slovy-bez něj prostě téměř nic nenapíšeš. Až ho budeš mít tak
zjistíš, že plno věcí zde je jakoby z něj opsáno. ANO, je to tak. Některé
pasáže by nemělo smysl nějak předělávat, tak jsem je prostě opsal.
- Díky vstřícnosti Telecomu si nyní nikdo nemůže dovolit ztrácet vzácný
čas strávený na internetu čtením nějakého, v porovnání se zbytkem WEBu
nudného, kurzu assembleru a proto jsem vše, co kurz obsahuje si můžeš
jednoduše stáhnout zde.
- U mnoha výrazů(ač běžně používaných) se nemohu rozhodnout, zda
používat jejich anglickou nebo českou podobu. Proto se nejspíš budeš
potkávat s oběma variantami.
Už dost povídání, jdeme na to. Preventivně jsem rozdělil text na několik
stránek, aby to nebyl jeden velký zmatek. Alespoň několik prvích stránek
doporučuji procházet v takovém pořadí, v jakém jsou seřazeny.
- Překladač, základní syntaxe
- Registry procesoru
- První program, základní instrukce
- Další instrukce - Artimetika, Zásobník
- Instrukce posunů a rotací
- Zbylé důležité instrukce
Tímto končí první část věnovaná instrukcím a jejich použití, nyní se
konečně pustíme do pořádných věcí.
- Rezidentní programy
Rejstřík
Na další lekce si musíš zase nějakou dobu počkat.
Stránku připravuje Lukáš Valenta,
1. v celostátním kole soutěže v programování, kategorie mládež.