Detail předmětu

Programování na strojové úrovni

FIT-ISUAk. rok: 2017/2018

Číselné soustavy. Zobrazování celých čísel bez a se znaménkem, aritmetika ve dvojkové soustavě. Strojový jazyk, jazyk symbolických instrukcí, asembler. Architektura procesorů Intel Pentium (registry, organizace hlavní paměti, přerušovací systém). Soubor celočíselných instrukcí. Programování na úrovni strojového jazyka. Jazyk symbolických instrukcí NASM, symbolické instrukce, direktivy, makroinstrukce. Překlad a sestavování. Standardní předávání řízení a parametrů při volání procedur a funkcí. Služby operačního systému. Programování periferií PC (videoRAM, myš, reproduktor). Zobrazování reálných čísel, standard IEEE. Architektura FPU a soubor instrukcí FPU. Programování FPU. Seznámení s FITkit.

Jazyk výuky

čeština

Počet kreditů

6

Garant předmětu

Výsledky učení předmětu

Studenti se seznámí s architekturou procesorů Intel Pentium (základní režim) včetně jednotky FPU a naučí se používat nejdůležitější celočíselné a FPU instrukce. Dále se naučí jazyk symbolických instrukcí NASM a budou schopni vytvářet programy v tomto jazyku a překládat tyto programy do spustitelných programů. Získají i základní vědomosti o předávání řízení a parametrů a o službách operačního systému 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 vést řádnou dokumentaci elementárních počítačových programů.

Prerekvizity

Žádné.

Způsob a kritéria hodnocení

Nejméně 15 bodů získaných v průběhu semestru.

Upozornění: Počínaje akademickým rokem 2009/2010 se stanovuje minimální počet bodů (25), nutný pro úspěšné absolvování semestrální zkoušky - studenti, kteří tento počet bodů nezískají, budou mít semestrální zkoušku hodnocenou 0 body !!!

Osnovy výuky

Osnova přednášek:
  1. Úvod, číselné soustavy, aritmetika.
  2. Strojový jazyk, jazyk symbolických instrukcí, asembler.
  3. Základní režim procesorů Pentium: soubor registrů, typy operandů, formát instrukcí, adresování paměti, přerušení.
  4. Soubor instrukcí procesorů Pentium. Celočíselné instrukce.
  5. Celočíselné instrukce, pokračování.
  6. Celočíselné instrukce, pokračování.
  7. Zásady programování ve strojovém jazyku, typické řídící konstrukce.
  8. Jazyk symbolických instrukcí.
  9. Jazyk symbolických instrukcí, pokračování.
  10. Programové moduly, knihovny, služby operačního systému. Procedury a funkce, standardní předávání řízení a parametrů.
  11. FPU procesorů Pentium.
  12. Soubor instrukcí FPU.
Osnova počítačových cvičení:
  1. Principy programování v symbolickém jazyku. Překlad, sestavení a spuštění programu.
  2. Jednoduché programy v symbolickém jazyku.
  3. Překladač NASM a sestavující program LINK.
  4. Služby operačního systému. Programování periférií PC.
  5. Standardní předávání řízení a parametrů procedur a funkcí.
  6. Individuální složitější programy.
  7. Programování FPU.

Učební cíle

Seznámit studenty s programováním počítačů na nejnižší úrovni se zaměřením na počítače PC s procesory Intel Pentium, a to především s číselnými soustavami, zobrazováním čísel bez a se znaménkem, s aritmetikou v dvojkové soustavě a se zobrazováním reálných čísel. Dále se základní architekturou procesorů Intel Pentium, s typy a adresováním operandů, se souborem celočíselných a FPU instrukcí, se základním jazykem a s typickými programovacími konstrukcemi.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

  • Půlsemestrální písemný test
  • Hodnocení aktivity v počítačových cvičeních

Základní 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
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

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

Zařazení předmětu ve studijních plánech

  • Program IT-BC-3 bakalářský

    obor BIT , 1. ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Úvod, číselné soustavy, aritmetika.
  2. Strojový jazyk, jazyk symbolických instrukcí, asembler.
  3. Základní režim procesorů Pentium: soubor registrů, typy operandů, formát instrukcí, adresování paměti, přerušení.
  4. Soubor instrukcí procesorů Pentium. Celočíselné instrukce.
  5. Celočíselné instrukce, pokračování.
  6. Celočíselné instrukce, pokračování.
  7. Zásady programování ve strojovém jazyku, typické řídící konstrukce.
  8. Jazyk symbolických instrukcí.
  9. Jazyk symbolických instrukcí, pokračování.
  10. Programové moduly, knihovny, služby operačního systému. Procedury a funkce, standardní předávání řízení a parametrů.
  11. FPU procesorů Pentium.
  12. Soubor instrukcí FPU.

Cvičení na počítači

26 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Principy programování v symbolickém jazyku. Překlad, sestavení a spuštění programu.
  2. Jednoduché programy v symbolickém jazyku.
  3. Překladač NASM a sestavující program LINK.
  4. Služby operačního systému. Programování periférií PC.
  5. Standardní předávání řízení a parametrů procedur a funkcí.
  6. Individuální složitější programy.
  7. Programování FPU.