Detail kurzu
Assembler x86 I. - základy programovania
IT LEARNING SLOVAKIA, 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é.
V tomto kurze Assembler 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
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
- Čí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
- 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
- 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
- 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
začiatočníkHodnotenie
Organizátor
Podobné kurzy
podľa názvu a lokality