Detail předmětu
Pokročilé asemblery
IPA Ak. rok 2022/2023 zimní semestr 5 kreditů
Chráněný režim procesorů Pentium: princip ochrany, registry, správa paměti, soubor instrukcí. Technika programování v chráněném režimu, správa úloh, virtuální režim. Využití nízkoúrovňového Win32 API v aplikacích pro Windows - konzolové aplikace, "okénkové" aplikace, OpenGL. Technologie programování s využitím multimediálních SIMD instrukcí současných procesorů Intel (MMX a SSE). Seznámení s 64bitovými procesory.
Garant předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. přednášky
- 16 hod. pc laboratoře
- 10 hod. projekty
Zajišťuje ústav
Přednášející
Cvičící
Získané dovednosti, znalosti a kompetence z předmětu
Principy chráněného režimu architektury IA-32. Tvorba programů používajících instrukce MMX a SSE. Tvorba programů a knihoven pracujících v chráněném režimu používajících Win32 API na nejnižší úrovni.
Cíle předmětu
Seznámit studenty s programováním náročnějších aplikací na nejnižší úrovni. Naučit používat instrukce multimediálního rozšíření procesorů Intel. Seznámit s principy chráněného režimu architektury IA-32, naučit programovat v chráněném režimu a používat rozhraní Win32 API v nízkoúrovňových aplikacích. Seznámit s 64-bitovými procesory.
Požadované prerekvizitní znalosti a dovednosti
Nezbytná je základní znalost asembleru procesorů x86 (pro studenty FIT je to předmět ISU), znalost programování v NASM a jazyka C.
Literatura studijní
- Orság, F.: Studijní opora k předmětu IPA
- Zbořil, F.: Strojově orientované jazyky, skripta, VUT v Brně, 1991, ISBN 80-214-0349-7
- Hall, R. B.:Assembly Programming and Computer Architecture for Software Engineers. Prospect Press. 2017. ISBN: 978-1943153329.
- Hyde, R.: The Art of Assembly Language, No Strach, 2003, ISBN 1886411972
- Kusswurm, D.: Modern X86 assembly language programming: 32-bit, 64-bit, SSE, and AVX. Apress, 2014. ISBN: 9781484200650.
- Irvine, K.R.: Assembly Language for Intel-Based Computers, Prentice Hall, 2002, ISBN 0130910139
- Bistry, D.: The Complete Guide to MMX Technology, McGraw-Hill/TAB Electronics, 1997, ISBN 0070061920
- Abel, P.: IBM PC Assembly Language and Programming, Prentice-Hall, Inc., 1995, ISBN 0-13-317729-7
- Intel 64 and IA-32 Architectures Software Developer's Manuals [online]. K dispozici na <www.intel.com>.
Osnova přednášek
1. Architektura procesorů x86-64. 2. Rozšíření a technologie procesorů - MMX. 3. Rozšíření a technologie procesorů - SSE. 4. Rozšíření a technologie procesorů - AVX. 5. Aplikace využívající MMX, SSE a AVX. 6. Architektura a asembler procesorů ARM. 7. Technologie NEON procesoru ARM. 8. Programování aplikací pro procesor ARM - emulace, vestavěná zařízení. 9. Chráněný režim procesorů IA-32 a x86-64 - soubor registrů a instrukcí, paměťové modely. 10. Chráněný režim procesorů IA-32 a x86-64 - základní datové struktury, správa paměti. 11. Chráněný režim procesoru IA-32 a x86-64 - způsoby ochrany dat a kódu. 12. Chráněný režim procesoru IA-32 a x86-64 - správa úloh. 13. Optimalizace programů v asembleru.
Osnova počítačových cvičení
1. Tvorba a použití knihoven DLL. 2. Win32 API - konzolová aplikace. 3. Win32 API - klasická aplikace s okny. 4. Win32 API - aplikace využívající OpenGL. 5. Aplikace instrukcí rozšíření MMX. 6. Aplikace instrukcí technologie SSE. 7. Optimalizace kódu.
Osnova ostatní - projekty, práce
1. Individuální projekt: program ve 32/64bitovém chráněném režimu využívající Win32 API, rozšíření MMX a/nebo technologii SSE, AVX, OpenGL.
Průběžná kontrola studia
- Práce na cvičeních. - Hodnocený projekt.
Kontrolovaná výuka
Kontrolovanou výukou je práce na cvičeních a hodnocený projekt. Absenci na cvičení z důvodu nemoci nebo jiné, řádně doložené absenci, lze nahradit formou individuální práce zadané cvičícím.
Zařazení předmětu ve studijních plánech
- Program BIT (anglicky), 2. ročník, volitelný