Náplň:
1. všeobecná časť
reprezentácia údajov, assembler, typy inštrukcií, adresné módy, štruktúra
programu v GNU as, linkovanie viacmodulových programov, volacie konvencie,
práca so zasobníkom, knižnice, zavádzanie a spúšťanie programov.
2. IA32/Intel64
základná architektúra, registre, vybrané inštrukcie, pamäťové modely,
virtuálna pamäť
3. vybrané systémové volania UNIXových systémov:
vytváranie a ukončovanie procesov, vstup/výstup, sieťová komunikácia, práca
s terminálom, signály, ...
Praktické veci budú demonštrované pod OS Linux, a budú sa využívať GNU as, ld, gcc, ...
Hodnotenie: projekt a záverečná skúška
Skúška predstavuje 70% hodnotenia, hodnotenie práce počas semestra 30%.
Hodnotenie práce počas semestra bude pozostávať z úloh na cvičeniach a z
projektu. Skúška bude mať 2 časti -
písomnú a ústnu. Písomná časť bude mať formu testu
s hodnotením odpovedí: nesprávna -1, nezodpovedaná 0, správna +2.
Študent, ktorý získa aspoň polovičný počet bodov, postupuje na ústnu časť skúšky. Skúšajúci môže (ale nemusí) študentovi ponúknuť známku určenú na základe písomnej časti, študent ponuku môže a nemusí akceptovať. Ak študent nedostane ponuku známky, alebo ak sa ju rozhodne neakceptovať, známka sa určí na základe ústnej skúšky v rozsahu A až FX.
Projekt sa hodnotí na trojstupňovej škále: 0(0%) - neodovzdaný alebo neakceptovateľný, 1(50%) - akceptovaný s výhradami, 2(100%) - akceptovaný bez výhrad.
Na cvičeniach bolo primárnym cieľom získať zakaždým na testovači aspoň 7 primárnych bodov. Tieto boli do hodnotenia počítané na základe nasledujúcich pravidiel:
Výsledná známka sa určí podľa modelu.
Rozvrh:
Prednáška: utorok 8:10 2h v A
Cvičenia: streda 12:20, 14:00 2h v H3
Testovač pre úlohy na cvičeniach
Kód pre pridanie sa do tímu v MS Teams: glcq081
Materiály:
Prednášky
Zhrnutie IA32
Rýchlokurz programovania v C
RNDr. Vanda Hambálková: Systémové programovanie - podporný materiál k 1. časti
Intel 64 and IA-32 Architectures Software Developer's Manuals
Dokumentácia k x86-64 ABI (vrátane podrobností
volacích konvencií použitých v Linux-e)
Projekty
Projekt je nutnou podmienkou pre lepšie známky (je súčasťou hodnotenia), odovzdať ho
treba do konca skúškového obdobia. Odporúča sa projekt najprv skonzultovať.
Príklady tém pre projekty
Projekty je možné robiť aj na iné témy podobného charakteru a zložitosti.
Taktiež je možné robiť projekty typu "Demonštrácia niektorých vlastností
IA-32 v protected mode", tie je však nutné vopred odkonzultovať.