Detail předmětu

Programování na strojové úrovni

FIT-ISUAk. rok: 2019/2020

Čí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

Výsledky učení 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.

Prerekvizity

Základní znalost programování v jazyce C.

Doporučená nebo povinná 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.
Carter, P.: Assembly language tutorial, http://www.drpaulcarter.com/pcasm/, 2002
IRVINE, Kip R. Assembly language for x86 processors. Seventh edition. Boston: Pearson, 2015. ISBN 978-0133769401.
The Netwide Assembler: NASM, Quick reference Guide, 2012, http://www.nasm.us/xdoc/2.10.05/nasmdoc.pdf
Intel Architecture Software Developer's Manual,Volume 2: Instruction Set Reference https://www.fit.vutbr.cz/study/courses/IAS/private/24319102 (EN)

Způsob a kritéria hodnocení

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

Podmínky zápočtu:
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.

Jazyk výuky

čeština, angličtina

Cíl

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).

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

  • 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

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

  • Program BIT bakalářský, 1. ročník, letní semestr, 6 kreditů, povinný

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

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

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova


  1. Úvod, číselné soustavy, reprezentace čísel, binární aritmetika.
  2. Základní funkce procesoru, strojový jazyk, jazyk symbolických instrukcí, asembler.
  3. Architektura procesoru - registry, typy operandů, formát instrukcí, adresování paměti, přerušení.
  4. Architektura procesoru - přenosy, aritmetické a logické instrukce.
  5. Architektura procesoru - posuny a rotace, předávání řízení.
  6. Architektura procesoru - další instrukce.
  7. Půlsemestrální test.
  8. Zásady programování ve strojovém jazyku, základní řídící konstrukce.
  9. Funkce, standardní předávání řízení a parametrů.
  10. Programové moduly, knihovny, služby operačního systému.
  11. Koprocesor FPU - architektura, reprezentace reálných čísel, instrukční sada.
  12. Koprocesor FPU - instrukční sada, programování a ukázky použití.
  13. Překladač jazyka symbolických instrukcí - pseudoinstrukce, direktivy, výrazy, operátory, operandy a makra.

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova


  1. Číselné soustavy (převody mezi soustavami), číselné kódy (reprezentace záporných čísel).
  2. 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í.
  3. Práce s registry a s pamětí (proměnné, pole).
  4. Aritmetické instrukce.
  5. Logické instrukce, instrukce posunů a rotací.
  6. Skokové instrukce, volání funkcí a předávání parametrů funkcím registry, knihovna pro vstupní a výstupní operace.
  7. Test.
  8. Základní řídicí konstrukce (if-then-else, while, do-while, for, switch-case).
  9. Instrukce pro práci s řetězci (poli).
  10. Test.
  11. Volání funkcí a předávání parametrů funkcím z knihoven vyšších programovacích jazyků.
  12. Práce s koprocesorem FPU.
  13. Test.

eLearning