460-4083/03 – Strojově orientované jazyky (SOJ)
Garantující katedra | Katedra informatiky | Kredity | 6 |
Garant předmětu | Ing. Petr Olivka, Ph.D. | Garant verze předmětu | Ing. Petr Olivka, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | povinný |
Ročník | 1 | Semestr | letní |
| | Jazyk výuky | čeština |
Rok zavedení | 2018/2019 | Rok zrušení | 2022/2023 |
Určeno pro fakulty | FEI | Určeno pro typy studia | navazující magisterské, magisterské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Cílem je seznámení se s možnostmi využití technických prostředků počítače PC v jazyce symbolických instrukcí. Po absolvování předmětu budou studenti schopni eliminovat nedostatky vyšších programovacích jazyků kódem v JSI. Studenti budou také schopni spojovat moduly z více programovacích jazyků do jednoho programu.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Anotace
V předmětu se studenti seznámí s programováním v JSI pod OS Linux na platformě x86. Seznámí se z technickými možnostmi procesoru, používáním ALU, FPU a SSE. Naučí se některé programovací techniky, které vyšší programovací jazyky neumožňují.
Povinná literatura:
Doporučená literatura:
[1] Brandejs,M.: Mikroprocesory INTEL 8086-80486, GRADA a.s., 1991.
[2] Dokumentace překladače NASM, http://www.nasm.us
Další studijní materiály
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Během cvičení budou studenti programovat zadané úkoly. Výsledky těchto úkolů budou tvořit základ výsledného hodnocení.
Teoretické znalosti jsou ověřeny písemnou zkouškou.
E-learning
Další požadavky na studenta
Znalost programování v jazyce C/C++.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Přednášky:
1. Procesory Intel 8086, velikosti operandů, registry, adresace - bázové a indexové registry, výpočet fyzické adresy.
2. Instrukce přesunové, použití adresace přímé a nepřímé.
3. Instrukce aritmetické a logické.
4. Instrukce skokové, řetězcové a řídící.
5. Rozšiřování instrukčního souboru během vývoje procesorů Intel.
6. Spojování programů v JSI s vyššími programovacími jazyky, použití JSI ve zdrojových textech vyšších programovacích jazyků.
7. Předávání parametrů a návratových hodnot do funkcí.
8. Rozšíření procesorů na 64 bitový režim, spojování s vyššími programovacími jazyky
9. Statické a dynamické linkování, implementace OOP a přetížených identifikátorů.
10. Výpočty s velkými čísly, základní principy.
11. Výpočty s velkými čísly bez omezení velikosti.
12. Formáty desetinných čísel, provádění výpočtů s desetinnými čísly.
13. Matematický koprocesor, FPU a SSE.
Cvičení (probíhají v počítačové učebně):
1. Registry, základní adresovací režimy, nedokonalosti překladačů vyšších jazyků.
2. Překlad a linkování programu. Symboly veřejné a lokální. Spojování programů jazyka C a ASM.
3. Instrukce přesunové a skokové.
4. Instrukce logické a aritmetické.
5. Instrukce řetězcové.
6. Předávání parametrů přes zásobník, návratové hodnoty funkcí.
7. Manipulace se základními datovými typy v podprogramech.
8. Aritmetika s čísly ve více registrech.
9. Sčítání, odčítání a bitové posuny N-bitových čísel.
10. Násobení a dělení N-bitových čísel.
11. Programování v 64 bitovém režimu.
12. Formáty a výpočty s desetinnými čísly.
13. Matematický koprocesor FPU a jednotka SSE
Projekt:
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky