Course details
Advanced Assembly Languages
IPA Acad. year 2026/2027 Summer semester 5 credits
Protected mode of the Pentium based processors: protection principles, registers, memory management, instruction set. Techniques of programming in the protected mode, task management, virtual mode. Use of the low-level interface Win32 API in the Windows applications - console applications, windows based applications, OpenGL. Programming using the multimedia instruction sets of the Intel processors (MMX and SSE). Introduction to the 64-bit processors.
Guarantor
Course coordinator
Language of instruction
Completion
Time span
- 26 hrs lectures
- 16 hrs pc labs
- 30 hrs projects
Assessment points
- 60 pts final exam (50 pts written part, 10 pts test part)
- 16 pts numeric exercises
- 24 pts projects
Department
Lecturer
Instructor
Learning objectives
To give the students better knowledge of developing of more complex low-applications. To teach them how to use the multimedia extension instructions of the Intel processors. To teach them basic principles of the protected mode, programming in the protected mode and to use the low-level Win32 API. To introduce the 64-bit processors.
Basic principles of the protected mode of the IA-32 architecture. Development of the applications using the MMX and SSE instructions. Development of the applications in the protected mode using the Win32 API at the lowest level.
Prerequisite knowledge and skills
Basic knowledge of the assembly language of x86 processor family and C language is necessary. Student has to be able to work with the NASM.
Study literature
- 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>.
Syllabus of lectures
- AMD/Intel x86-64 processor acrhitecture.
- Extensions and SIMD technologies of processors - MMX.
- Extensions and SIMD technologies of processors - SSE 1, 2
- Extensions and SIMD technologies of processors - SSE 3, 4.1, 4.2.
- Extensions and SIMD technologies of processors - AVX.
- MMX, SSE and AVX applications.
- Architecture and assembler of the 32bit ARM processors.
- Architecture and assembler of the 64bit ARM processors.
- NEON technology of the ARM processors.
- WebAssembly.
- Protected mode of the IA-32 and x86-64 processors - registers, instructions and memory models, basic data structures, memory management.
- Protected mode of the IA-32 and x86-64 processors - principles of the data and code protection.
- Protected mode of the IA-32 and x86-64 processors - task management.
Syllabus of computer exercises
- Development and use of the DLL libraries. Use of FPU.
- Application of the MMX extension.
- Application of the SSE technology.
- Application of the SSE technology.
- Application of the AVX technology.
- Assembly programming for ARM processors.
- Assembly programming for ARM processors.
- Code analysis.
Syllabus - others, projects and individual work of students
- Code optimization using MMX extensions and/or SSE or AVX technology.
Progress assessment
- Work in laboratory.
- Evaluated project.
Work in laboratory and evaluated project are monitored and given points for. Missed labs caused by a valid proved reason (health issues or other valid reasons) will be compensated by an appropriate homework.
Schedule
| Day | Type | Weeks | Room | Start | End | Capacity | Lect.grp | Groups | Info |
|---|---|---|---|---|---|---|---|---|---|
| Tue | lecture | 1., 2., 3., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures | G202 | 10:00 | 11:50 | 80 | 2BIA 2BIB 3BIT | xx | Orság |
| Tue | lecture | 2027-03-02 | G202 | 10:00 | 11:50 | 80 | 2BIA 2BIB 3BIT | xx | Goldmann |
| Tue | comp.lab | lectures | N203 | 18:00 | 19:50 | 20 | 2BIA 2BIB 3BIT | xx | |
| Wed | comp.lab | lectures | N103 | 14:00 | 15:50 | 20 | 2BIA 2BIB 3BIT | xx | |
| Wed | comp.lab | lectures | N103 | 16:00 | 17:50 | 20 | 2BIA 2BIB 3BIT | xx | |
| Thu | comp.lab | lectures | N103 | 10:00 | 11:50 | 20 | 2BIA 2BIB 3BIT | xx |
Course inclusion in study plans
- Programme BIT, 2nd year of study, Elective
- Programme BIT (in English), 2nd year of study, Elective