Detail předmětu
Programování na strojové úrovni
ISU Ak. rok 2024/2025 letní semestr 6 kreditů
Čí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.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
- 26 hod. pc laboratoře
Bodové hodnocení
- 60 bodů závěrečná zkouška (písemná část)
- 16 bodů půlsemestrální test (písemná část)
- 24 bodů numerická cvičení
Zajišťuje ústav
Přednášející
Husa Jakub, Ing. (UPSY)
Jaroš Marta, Ing., Ph.D. (UPSY)
Orság Filip, Ing., Ph.D. (UITS)
Cvičící
Grézl František, Ing., Ph.D. (UPGM)
Husa Jakub, Ing. (UPSY)
Jaroš Marta, Ing., Ph.D. (UPSY)
Orság Filip, Ing., Ph.D. (UITS)
Sakin Martin, Ing. (UITS)
Semerád Lukáš, Ing., Ph.D. (UITS)
Cíle předmětu
Seznámit s programováním počítačů na nejnižší úrovni se zaměřením na vybranou architekturu. Seznámit a naučit aktivně pracovat s číselnými soustavami, zobrazováním čísel bez a se znaménkem, aritmetikou v dvojkové soustavě a se zobrazováním reálných čísel. Seznámit s vybranou konkrétní architekturou procesorů, formátem instrukcí a adresovacími režimy. Naučit aktivně programovat běžné řídící konstrukce v asembleru s daným souborem instrukcí. Propojit programování v asembleru na nízké úrovni s programovacími jazyky vyšší úrovně knihovnami a službami operačního systému. Naučit používat koprocesor pro práci s reálnými čísly (FPU).
Studenti se seznámí s jednou konkrétní architekturou procesoru. Naučí se používat nejdůležitější instrukce daného procesoru a koprocesoru FPU, jazyk symbolických instrukcí a budou schopni vytvářet jednoduché programy, překládat je a spojovat do spustitelných programů. Získají základní vědomosti o předávání řízení, předávání parametrů, přehled o službách operačního systému a jejich volání a budou schopni tyto získané vědomosti prakticky používat. Studenti získají základní vědomosti o architektuře a činnosti procesoru, které patří k základním znalostem všech odborníků oboru IT. Naučí se řešit jednoduché problémy v jazyku symbolických instrukcí a návaznost na vyšší programovací jazyky.
Požadované prerekvizitní znalosti a dovednosti
Základní znalost programování v jazyce C.
Literatura studijní
- Marek, R.: Assembler pro PC - učíme se programovat v jazyce, Computer Press, 2003, ISBN 80-7226-843-0
- Duntemann, Jeff. Assembly language step-by-step: programming with linux. 3rd ed. Indianapolis: Wiley, 2009. ISBN 978-0470497029.
- Irvine, Kip R. Assembly language for x86 processors. Seventh edition. Boston: Pearson, 2015. ISBN 978-0133769401.
- 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
- The Netwide Assembler: NASM, Quick reference Guide [online]. [cit. 2022-01-06]. Dostupné z: https://www.nasm.us/xdoc/2.15.05/nasmdoc.pdf
Literatura referenční
- 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
- The Netwide Assembler: NASM, Quick reference Guide [online]. [cit. 2022-01-06]. Dostupné z: https://www.nasm.us/xdoc/2.15.05/nasmdoc.pdf
Osnova přednášek
- Ú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.
Osnova počítačových cvičení
- Číselné soustavy (převody mezi soustavami), číselné kódy (reprezentace záporných čísel).
- 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í.
- Práce s registry a s pamětí (proměnné, pole).
- Aritmetické instrukce.
- Logické instrukce, instrukce posunů a rotací.
- Skokové instrukce, volání funkcí a předávání parametrů funkcím registry, knihovna pro vstupní a výstupní operace.
- Test.
- Základní řídicí konstrukce (if-then-else, while, do-while, for, switch-case).
- Instrukce pro práci s řetězci (poli).
- Test.
- Volání funkcí a předávání parametrů funkcím z knihoven vyšších programovacích jazyků.
- Práce s koprocesorem FPU.
- Test.
Průběžná kontrola studia
- půlsemestrální písemný test
- testy v počítačových cvičeních
- 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
Rozvrh
Den | Typ | Týdny | Místn. | Od | Do | Kapacita | PSK | Skup | Info |
---|---|---|---|---|---|---|---|---|---|
Po | přednáška | 1., 2., 3., 4. výuky | D105 | 11:00 | 13:50 | 316 | 1BIB 2BIA 2BIB | 30 - 49 xx | Husa |
Po | přednáška | 5., 6., 8., 10., 13. výuky | D105 | 11:00 | 13:50 | 316 | 1BIB 2BIA 2BIB | 30 - 49 xx | Jaroš |
Po | přednáška | 7., 9. výuky | D105 | 11:00 | 13:50 | 316 | 1BIB 2BIA 2BIB | 30 - 49 xx | |
Po | přednáška | 11., 12. výuky | D105 | 11:00 | 13:50 | 316 | 1BIB 2BIA 2BIB | 30 - 49 xx | Goldmann |
Po | přednáška | 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 12., 13. výuky | D105 | 14:00 | 16:50 | 560 | 1BIA 2BIA 2BIB | 10 - 29 xx | Orság |
Po | přednáška | 1., 2., 3., 4., 5., 6., 7., 9., 10., 12., 13. výuky | D0206 D0207 | 14:00 | 16:50 | 560 | 1BIA 2BIA 2BIB | 10 - 29 xx | Orság |
Po | přednáška | 2025-04-21 | D0206 D0207 D105 | 14:00 | 16:50 | 560 | 1BIA 2BIA 2BIB | 10 - 29 xx | Jaroš |
Út | poč. lab | výuky | N103 N104 N105 | 08:00 | 09:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Út | poč. lab | výuky | N103 N104 N105 | 10:00 | 11:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Út | poč. lab | výuky | N103 N104 N105 | 12:00 | 13:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Út | poč. lab | výuky | N103 N104 N105 | 14:00 | 15:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Út | poč. lab | výuky | N103 N104 N105 | 16:00 | 17:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Út | poč. lab | výuky | N103 N104 N105 | 18:00 | 19:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
St | poč. lab | výuky | N103 N104 N105 | 08:00 | 09:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
St | poč. lab | výuky | N103 N104 N105 | 10:00 | 11:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
St | poč. lab | výuky | N103 N104 N105 | 12:00 | 13:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
St | poč. lab | výuky | N103 N104 N105 | 14:00 | 15:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
St | poč. lab | výuky | N103 N104 N105 | 16:00 | 17:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
St | poč. lab | výuky | N103 N104 N105 | 18:00 | 19:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Čt | poč. lab | výuky | N103 N104 | 08:00 | 09:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Čt | poč. lab | výuky | N103 N104 N105 N204 | 10:00 | 11:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Čt | poč. lab | výuky | N104 N204 | 14:00 | 15:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Čt | poč. lab | výuky | N103 N104 | 16:00 | 17:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx | |
Čt | poč. lab | výuky | N103 N104 | 18:00 | 19:50 | 20 | 1BIA 1BIB 2BIA 2BIB | xx |
Zařazení předmětu ve studijních plánech
- Program BIT, 1. ročník, povinný
- Program BIT (anglicky), 1. ročník, povinný