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

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

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.

Prerequisites

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.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

Study evaluation is based on marks obtained for specified items. Minimimum number of marks to pass is 50.

Course curriculum

Syllabus of lectures:
  1. OS Windows and assembler - general introduction.
  2. Development of applications in assembler for the OS Windows - console applications and DLL libraries.
  3. Development of applications in assembler for the OS Windows - window-based applications and OpenGL.
  4. Introduction to the instructions of the MMX extension.
  5. Applications of the MMX extension.
  6. Introduction to the instructions of the SSE technology.
  7. Applications of the SSE technology.
  8. Optimizations of the assembler code.
  9. Protected mode of the IA-32 processors - registers and instructions, memory models.
  10. Protected mode of the IA-32 processors - basic data structures, memory management.
  11. Protected mode of the IA-32 processors - principles of the data and code protection.
  12. Protected mode of the IA-32 processors - task management.
  13. 64-bit processors.

Syllabus of computer exercises:
  1. Development and use of the DLL libraries.
  2. Win32 API - console application.
  3. Win32 API - window-based application.
  4. Win32 API - applications using OpenGL.
  5. Application of the MMX extension.
  6. Application of the SSE technology.
  7. Code optimization.

Syllabus - others, projects and individual work of students:
  1. Individual project: development of a simple application in 32bit protected mode using Win32 API, MMX extension and/or SSE technology, OpenGL.

Work placements

Not applicable.

Aims

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.

Specification of controlled education, way of implementation and compensation for absences

Work in laboratory and evaluated project are monitored and given points for.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

  • Hyde, R.: The Art of Assembly Language, No Strach, 2003, ISBN 1886411972
  • 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>.

Recommended reading

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>.

Classification of course in study plans

  • Programme IT-BC-3 Bachelor's

    branch BIT , 2. year of study, winter semester, elective

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Syllabus

  1. OS Windows and assembler - general introduction.
  2. Development of applications in assembler for the OS Windows - console applications and DLL libraries.
  3. Development of applications in assembler for the OS Windows - window-based applications and OpenGL.
  4. Introduction to the instructions of the MMX extension.
  5. Applications of the MMX extension.
  6. Introduction to the instructions of the SSE technology.
  7. Applications of the SSE technology.
  8. Optimizations of the assembler code.
  9. Protected mode of the IA-32 processors - registers and instructions, memory models.
  10. Protected mode of the IA-32 processors - basic data structures, memory management.
  11. Protected mode of the IA-32 processors - principles of the data and code protection.
  12. Protected mode of the IA-32 processors - task management.
  13. 64-bit processors.

Exercise in computer lab

16 hours, optionally

Teacher / Lecturer

Syllabus

  1. Development and use of the DLL libraries.
  2. Win32 API - console application.
  3. Win32 API - window-based application.
  4. Win32 API - applications using OpenGL.
  5. Application of the MMX extension.
  6. Application of the SSE technology.
  7. Code optimization.

Project

10 hours, optionally

Teacher / Lecturer