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)
  • 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
Po zkouška 2024-04-29 D0206 14:0016:00 Zkouška 1
Ú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
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