Detail předmětu
Programování na strojové úrovni
ISU Ak. rok 2015/2016 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
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
- 26 hod. pc laboratoře
Zajišťuje ústav
Získané dovednosti, znalosti a kompetence z předmětu
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.
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).
Povinné prerekvizity
- Základy programování (IZP)
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.
- 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í
- Vývojové prostředí pro asemblery, překlad, sestavení a spuštění programu v příkazové řádce.
- Číselné soustavy (převody mezi soustavami), číselné kódy (reprezentace záporných čísel, reálná čísla).
- Hypotetický počítač (programování a ladění kódu ve vývojovém prostředí).
- Aritmetické a logické instrukce, instrukce posunů a rotací.
- Test - řešení jednoduchého matematického problému v asembleru.
- Skokové instrukce a základní řídicí konstrukce (if-then-else, while, do-while, for, switch-case).
- Práce s pamětí (proměnné, pole).
- Test - programování základních řídících konstrukcí.
- Volání funkcí a předávání parametrů funkcím.
- Volání služeb a funkcí operačního systému a volání funkcí z knihoven vyšších programovacích jazyků.
- Test - jednoduchý program s uživatelským vstupem a výstupem z příkazové řádky.
- Práce s koprocesorem FPU.
- Test - programování koprocesoru.
Průběžná kontrola studia
Nejméně 20 bodů získaných v průběhu semestru.
Minimální počet bodů nutný pro úspěšné absolvování semestrální zkoušky je 25.
Kontrolovaná výuka
- půlsemestrální písemný test
- testy v počítačových cvičeních
Zařazení předmětu ve studijních plánech