Course detail
Advanced Assembly Languages
FIT-IPAAcad. year: 2017/2018
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.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
- Syllabus of lectures:
- OS Windows and assembler - general introduction.
- Development of applications in assembler for the OS Windows - console applications and DLL libraries.
- Development of applications in assembler for the OS Windows - window-based applications and OpenGL.
- Introduction to the instructions of the MMX extension.
- Applications of the MMX extension.
- Introduction to the instructions of the SSE technology.
- Applications of the SSE technology.
- Optimizations of the assembler code.
- Protected mode of the IA-32 processors - registers and instructions, memory models.
- Protected mode of the IA-32 processors - basic data structures, memory management.
- Protected mode of the IA-32 processors - principles of the data and code protection.
- Protected mode of the IA-32 processors - task management.
- 64-bit processors.
- Development and use of the DLL libraries.
- Win32 API - console application.
- Win32 API - window-based application.
- Win32 API - applications using OpenGL.
- Application of the MMX extension.
- Application of the SSE technology.
- Code optimization.
- Individual project: development of a simple application in 32bit protected mode using Win32 API, MMX extension and/or SSE technology, OpenGL.
Syllabus of computer exercises:
Syllabus - others, projects and individual work of students:
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Recommended reading
Bistry, D.: The Complete Guide to MMX Technology, McGraw-Hill/TAB Electronics, 1997, ISBN 0070061920
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
Intel 64 and IA-32 Architectures Software Developer's Manuals [online]. K dispozici na <www.intel.com>.
Irvine, K.R.: Assembly Language for Intel-Based Computers, Prentice Hall, 2002, ISBN 0130910139
Kusswurm, D.: Modern X86 assembly language programming: 32-bit, 64-bit, SSE, and AVX. Apress, 2014. ISBN: 9781484200650.
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
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- OS Windows and assembler - general introduction.
- Development of applications in assembler for the OS Windows - console applications and DLL libraries.
- Development of applications in assembler for the OS Windows - window-based applications and OpenGL.
- Introduction to the instructions of the MMX extension.
- Applications of the MMX extension.
- Introduction to the instructions of the SSE technology.
- Applications of the SSE technology.
- Optimizations of the assembler code.
- Protected mode of the IA-32 processors - registers and instructions, memory models.
- Protected mode of the IA-32 processors - basic data structures, memory management.
- Protected mode of the IA-32 processors - principles of the data and code protection.
- Protected mode of the IA-32 processors - task management.
- 64-bit processors.
Exercise in computer lab
Teacher / Lecturer
Syllabus
- Development and use of the DLL libraries.
- Win32 API - console application.
- Win32 API - window-based application.
- Win32 API - applications using OpenGL.
- Application of the MMX extension.
- Application of the SSE technology.
- Code optimization.