Fakulta informačních technologií VUT v Brně

Detail předmětu

Programování na strojové úrovni

ISU Ak. rok 2018/2019 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

Orság Filip, Ing., Ph.D. (UITS FIT VUT)

Zástupce garanta předmětu

Jazyk výuky

česky

Zakončení

zápočet+zkouška (písemná)

Rozsah

39 hod. přednášky, 26 hod. pc laboratoře

Bodové hodnocení

60 zkouška, 16 půlsemestrální test, 24 cvičení

Zajišťuje ústav

Přednášející

Cvičící

Bardonek Petr, Ing. (UPSY FIT VUT)
Bordovský Gabriel, Ing. (UPSY FIT VUT)
Budiský Jakub, Ing. (UPSY FIT VUT)
Goldmann Tomáš, Ing. (UITS FIT VUT)
Heidari Mona (UITS FIT VUT)
Husa Jakub, Ing. (UPSY FIT VUT)
Jaroš Marta, Ing. (UPSY FIT VUT)
Matyáš Jiří, Ing. (UITS FIT VUT)
Orság Filip, Ing., Ph.D. (UITS FIT VUT)
Regéciová Dominika, Ing. (UIFS FIT VUT)
Sakin Martin, Ing. (UITS FIT VUT)
Semerád Lukáš, Ing. (UITS FIT VUT)
Švec Tomáš, Ing. (UPGM FIT VUT)
Tinka Jan, Ing. (UITS FIT VUT)

Aktuální informace

V informačním systému jsou výsledky semestrální zkoušky. Možnost nahlédnout do písemky bude ve středu 15. 5. 2019 v době od 10 do 14 hodin v kanceláři S107 (zámeček, budova S, přízemí, dveře přímo naproti vchodu do zámečku). 
Dne 8. 4. 2019 bude odpoledne děkanský půlden, odpadne tedy přednáška doc. Hanáčka. Vzhledem k tomu, že není příliš mnoho času na odpřednášení látky, doplníte si chybějící znalosti formou samostudia. Také máte možnost navštívit přednášku dopoledne, která neodpadne. Poněkud se změní pořadí přednášek a některá témata se přesunou.
Ve středu 1. 5. 2019 je státní svátek, což znamená, že všechna středeční cvičení budou buď zrušena nebo nahrazena jiný den. Je na vašem zvážení, zda se zúčastníte některého ze cvičení v úterý nebo se domluvíte se svým cvičícím na jiné alternativě.

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.

Dovednosti, znalosti a kompetence obecné

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

Proč je předmět vyučován

Elementární znalost fungování procesoru na nízké úrovni z hlediska jeho programování je nepostradatelná dovednost budoucího odborníka z oblasti IT. Každý programátor by měl vědět, jak pracuje procesor a jak se programuje na úrovni instrukční sady.

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

Literatura referenční

Osnova přednášek

  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.

Průběžná kontrola studia

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

Kontrolovaná výuka

  • 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

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.

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Pozkouška2019-05-06 D0206 D0207 D105 E104 E105 E112 09:0011:50 1BIA 1BIB 2BIA 2BIB řádná
Pozkouška2019-06-03 D105 09:0011:50 1BIA 1BIB 2BIA 2BIB 2. oprava
Popřednáškavýuky D105 10:0012:50 1BIA 2BIA 2BIB xx
Popřednáškavýuky E104 E105 E112 13:0015:50 1BIB 2BIA 2BIB xx
Útpoč. labvýuky N103 N104 N105 08:0009:50
Útpoč. labvýuky N203 08:0020:50
Útzkouška2019-05-21 D0206 D0207 D105 09:0011:50 1BIA 1BIB 2BIA 2BIB 1. oprava
Útpoč. lab2019-04-30 N104 10:0011:50ISU náhrada za 1. 5.
Útpoč. labvýuky N103 N104 N105 12:0020:50
Stpoč. labvýuky N203 08:0020:50
Stpoč. labvýuky N103 N104 N105 08:0011:50
Stpoč. labvýuky N103 N104 N105 16:0020:50
zkouška2019-05-03 D105 16:0018:50 1BIA 1BIB 2BIA 2BIB předtermín

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

  • Program BIT, 1. ročník, povinný
  • Program IT-BC-3, obor BIT, 1. ročník, povinný
Nahoru