Detail kurzu

Assembler x86 – základy

KVT vzdelávanie s.r.o.

Popis kurzu

Prečo „dnes“ vôbec programovať v Assembleri, keď máme k dispozícií niekoľko iných moderných a dokonca objektovo orientovaných jazykov? – Touto vetou argumentuje v súčasnosti nejeden programátor. Assembler je pritom najvýkonnejším nástrojom v rukách programátora. Assembler je materinským jazykom procesora a umožňuje nám využiť všetky jeho možnosti a rozšírenia, ktoré sa bez špecializovaných knižníc nedajú pri programovaní vo vyšších jazykoch využiť. Príkladom takýchto rozšírení je pôvodné MMX alebo v súčasnosti SSE a AVX. Aj dnes by sme veľmi ťažko hľadali kompilátor, resp. interpréter, ktorý je natoľko inteligentný, aby vedel generovať strojový kód pre jedno z týchto rozšírení, hoci nám by sa to v danej situácii zdalo mimoriadne výhodné. Je takisto nesprávne považovať Assembler za synonymum operačného systému MS-DOS.

V tomto kurze sa oboznámime s Assemblerom 32-bitového procesora Intel 80386, ktorého architektúra s hľadiska interných registrov a z pohľadu Assemblera zostala prakticky zachovaná aj v dnešných procesoroch. Absolvent kurzu získa znalosti o spôsobe uloženia údajov v počítači, formátu celých a reálnych čísel a o uložení textu v operačnej pamäti. Porozumie rozloženiu virtuálnej pamäte procesu a bude schopný efektívne využívať zásobník. Bude vedieť použiť Assembler ako samostatný jazyk, alebo tvoriť výkonné rutiny v jazyku Assembler vo vyšších programovacích jazykoch.

Obsah kurzu

1. Všeobecný úvod do programovania

  • Procesor, operačná pamäť
  • Úloha operačného systému z pohľadu programátora
  • Rozdelenie programovacích jazykov
  • Fyzická a virtuálna pamäť, pamäťové modely, segmentácia a stránkovanie
  • Zásobník
  • Pojem proces, vlákno, úloha

2. Spôsoby uloženia údajov v počítači

  • Číselné sústavy – dvojková, desiatková, šestnásková
  • Celé čísla neznamiekové
  • Celé čísla znamnienkové a dvojkový doplnok
  • Reálne čísla s jednoduchou a dvojitou presnosťou, formát IEEE 754
  • Znaky a textové reťazce – Ansi a Unicode kódovanie, formáty LE a BE
  • Konverzie medzi číslami a textom

3. Architektúra procesora 80386 a režimy práce

  • Viacúčelové (všeobecné) registre
  • Segmentové registre
  • Čítač inštrukcií a ukazovateľ zásobníka
  • Register stavov
  • Reálny a chránený režim
  • Spôsoby adresovania v operačnej pamäti – priamy operand, register a displacement
  • Faktor škálovania

4. Základy jazyka Assembler

  • Kompilátory jazyka Assembler
  • Štandardná šablóna procesu
  • Assembler ako samostatný nástroj
  • Assembler ako súčasť vyšších programovacích jazykov
  • Volacie konvencie – stdcall a fastcall
  • Deklarácia a inicializácia premenných
  • Inštrukcie presunu
  • Inštrukcie pre prácu so zásobníkom
  • Aritmetické inštrukcie pre celočíselnú aritmetiku
  • Inštrukcie skokov
  • Vetvenie a cykly
  • Prepisovanie segmentov
  • Zostupná kompatibilita – 16-bitové režimy adresovania a práce s dátami

5. Tvorba vlastných procedúr a funkcií

  • Vytvorenie zásobníkového rámca
  • Porovnanie blízkych volaní a skokov
  • Konvencie PreXP SP2 a PostXP SP2
  • Návraty z procedúr a funkcií, návratové hodnoty
  • Lokálne premenné

Cieľová skupina

  • Základná znalosť programovania v ľubovoľnom jazyku
  • Základná orientácia v hardvéri počítača
Certifikát Certifikát o absolvovaní kurzu
Hodnotenie




Organizátor