Detail předmětu
Programování na strojové úrovni
FIT-ISUAk. rok: 2022/2023
Číselné soustavy: zobrazování celých čísel bez a se znaménkem, aritmetika ve dvojkové soustavě, reálná čísla ve formátu IEEE-754. Strojový jazyk: jazyk symbolických instrukcí, základní funkce počítače. Konkrétní architektura procesoru: registry, základy organizace paměti, adresování, systém přerušení, práce s koprocesory, soubor instrukcí a jejich formát. Programování na úrovni strojového jazyka: základní programátorské konstrukce, překlad a linkování kódu. Návaznost na vyšší programovací jazyky: standardní předávání řízení a parametrů při volání funkcí, služby operačního systému. Koprocesor: formát čísel, instrukční sada, programování koprocesoru FPU.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Prerekvizity
Způsob a kritéria hodnocení
- půlsemestrální písemný test
- testy v počítačových cvičeních
- minimální počet bodů nutný na získání zápočtu: 20
- minimální počet bodů u zkoušky: 25
Osnovy výuky
- Úvod, číselné soustavy, reprezentace čísel, binární aritmetika.
- Základní funkce procesoru, strojový jazyk, jazyk symbolických instrukcí, asembler.
- Architektura procesoru - registry, typy operandů, formát instrukcí, adresování paměti, přerušení.
- Architektura procesoru - přenosy, aritmetické a logické instrukce.
- Architektura procesoru - posuny a rotace, předávání řízení.
- Architektura procesoru - další instrukce.
- Půlsemestrální test.
- Zásady programování ve strojovém jazyku, základní řídící konstrukce.
- Funkce, standardní předávání řízení a parametrů.
- Programové moduly, knihovny, služby operačního systému.
- Koprocesor FPU - architektura, reprezentace reálných čísel, instrukční sada.
- Koprocesor FPU - instrukční sada, programování a ukázky použití.
- Překladač jazyka symbolických instrukcí - pseudoinstrukce, direktivy, výrazy, operátory, operandy a makra.
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
- průběžné bodované testy na počítačových cvičeních
- testy v počítačových cvičeních zmeškané z důvodu nemoci nebo jiné, řádně doložené absenci lze nahradit v následujícím cvičení případně v jiném termínu domluveném s garantem předmětu
Prerekvizity a korekvizity
- povinná prerekvizita
Základy programování
Základní literatura
The Netwide Assembler: NASM, Quick reference Guide [online]. [cit. 2022-01-06]. Dostupné z: https://www.nasm.us/xdoc/2.15.05/nasmdoc.pdf
Doporučená literatura
Intel® 64 and IA-32 architectures software developer’s manual combined volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4. Webové stránky společnosti Intel [online]. [cit. 2022-01-06]. Dostupné z: https://www.intel.com/content/dam/develop/public/us/en/documents/325462-sdm-vol-1-2abcd-3abcd.pdf
Irvine, Kip R. Assembly language for x86 processors. Seventh edition. Boston: Pearson, 2015. ISBN 978-0133769401.
Marek, R.: Assembler pro PC - učíme se programovat v jazyce, Computer Press, 2003, ISBN 80-7226-843-0
The Netwide Assembler: NASM, Quick reference Guide [online]. [cit. 2022-01-06]. Dostupné z: https://www.nasm.us/xdoc/2.15.05/nasmdoc.pdf
Elearning
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Úvod, číselné soustavy, reprezentace čísel, binární aritmetika.
- Základní funkce procesoru, strojový jazyk, jazyk symbolických instrukcí, asembler.
- Architektura procesoru - registry, typy operandů, formát instrukcí, adresování paměti, přerušení.
- Architektura procesoru - přenosy, aritmetické a logické instrukce.
- Architektura procesoru - posuny a rotace, předávání řízení.
- Architektura procesoru - další instrukce.
- Půlsemestrální test.
- Zásady programování ve strojovém jazyku, základní řídící konstrukce.
- Funkce, standardní předávání řízení a parametrů.
- Programové moduly, knihovny, služby operačního systému.
- Koprocesor FPU - architektura, reprezentace reálných čísel, instrukční sada.
- Koprocesor FPU - instrukční sada, programování a ukázky použití.
- Překladač jazyka symbolických instrukcí - pseudoinstrukce, direktivy, výrazy, operátory, operandy a makra.
Cvičení na počítači
Vyučující / Lektor
Osnova
- Číselné soustavy (převody mezi soustavami).
- Překlad, sestavení a spuštění programu v příkazové řádce. Vývojové prostředí pro asemblery. Ladění programu ve vývojovém prostředí a v samostatném nástroji na ladění.
- Číselné kódy (reprezentace záporných čísel). Práce s registry a s pamětí (proměnné, pole).
- Aritmetické instrukce.
- Logické instrukce, instrukce posunů a rotací. Skokové instrukce.
- Test.
- Volání funkcí a předávání parametrů funkcím registry, knihovna pro vstupní a výstupní operace.
- Základní řídicí konstrukce (if-then-else, while, do-while, for, switch-case).
- Konvence volání. Volání funkcí jazyka C.
- Test.
- FPU - základy, aritemtika
- FPU - porovnávání hodnot, složitější kódy
- Test.
Elearning