Detail předmětu

Pokročilé asemblery

IPA Ak. rok 2023/2024 letní 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. Ukázka nízkoúrovňového programování složitějších aplikací. Technologie programování s využitím multimediálních SIMD instrukcí současných procesorů Intel (MMX, SSE a AVX). Seznámení s asemblerem 64bitových procesorů. Asembler procesoru ARM a jeho rozšíření o vektorové instrukce NEON.

Garant předmětu

Koordinátor předmětu

Jazyk výuky

česky, anglicky

Zakončení

zkouška (písemná)

Rozsah

  • 26 hod. přednášky
  • 16 hod. pc laboratoře
  • 10 hod. projekty

Bodové hodnocení

  • 60 bodů závěrečná zkouška (50 bodů písemná část, 10 bodů testová část, 40 bodů ústní část)
  • 16 bodů numerická cvičení
  • 24 bodů projekty

Zajišťuje ústav

Přednášející

Cvičící

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 (MMX, SSE a AVX). 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 API v nízkoúrovňových aplikacích. Seznámit s 64-bitovými procesory. Seznámit s procesory ARM a jejich vektorovým rozšířením NEON.
Principy chráněného režimu architektury IA-32. Tvorba programů používajících instrukce MMX, SSE a AVX. Tvorba programů a knihoven na nejnižší úrovni.

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

Předmět se zaměřuje na nízkoúrovňové programování v asembleru, které je mnohdy nutné v případě optimalizaci kódu nebo systémového kódu, který využívá specifické instrukce procesoru nedostupné z vyšších programovacích jazyků. Optimalizace v asembleru umožňují udržet kompletní kontrolu nad kódem (jeho velikostí i efektivitou).

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.

Technické vybavení

volně dostupné

  • NASM, GoLink, aLINK

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.


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.

Rozvrh

DenTypTýdnyMístn.OdDoKapacitaPSKSkupInfo
Út přednáška 1., 2., 3., 5., 6., 7., 8., 9., 10., 11., 12., 13. výuky E105 16:0017:5064 2BIA 2BIB 3BIT xx Orság
Út přednáška 2024-02-27 E105 16:0017:5064 2BIA 2BIB 3BIT xx Goldmann
Út poč. lab *) 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. výuky N203 16:0017:5020 2BIA 2BIB 3BIT xx Goldmann
Út poč. lab 3., 5., 6., 8., 9., 11., 12., 13. výuky N203 18:0019:5020 2BIA 2BIB 3BIT xx Goldmann
Čt poč. lab 3., 5., 6., 8., 9., 11., 12., 13. výuky N203 12:0013:5020 2BIA 2BIB 3BIT xx Goldmann
Čt poč. lab 1., 2., 3., 5., 6., 8., 9., 11., 12., 13. výuky N205 14:0015:5020 2BIA 2BIB 3BIT xx Goldmann
zkouška 2024-05-03 D0206 10:0012:00 Zkouška 1
Na výuku se nelze registrovat ve Studis. (Termíny cvičení mohou být v případě potřeby otevřeny dodatečně, ale nemusí být využity vůbec.)

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

  • Program BIT, 2. ročník, volitelný
  • Program BIT (anglicky), 2. ročník, volitelný
  • Program IT-BC-3, obor BIT, 2. ročník, volitelný
Nahoru