Study level | Bachelor |
ECTS credits | 4 |
Study forms | Hybrid or fully online |
Module aims | To give detailed description on programming of x86 and x64 microprocessors in assembly language. |
Pre-requirements | Basic knowledge on PC computers architecture and programming. |
Learning outcomes | After completing this module, the student: - knows the instruction set of x86 and x64 processors - knows the principles of writing assembler programs for x86 and x64 platforms - understand the rules of calling conventions in modern operating systems - can write simple assembler program - can write assembler spftware module for high-level programming language |
Topics | - x86 and x64 processors architecture - addressing modes - instruction set including floating point and vector extensions - assembler programs, MASM, NASM, directives - procedures, argument passing, functions - macros |
Type of assessment | Evaluation test |
Blended learning | Student can attend classes or self-learn with video and reading materials provided. |
References to literature | 1. Randall Hyde, „The Art of 64-Bit Assembly”, No Starch Press; 2021 2. Jo Van Hoey, „Beginning x64 Assembly Programming: From Novice to AVX Professional”, Apress, 2019 3. Daniel Kusswurm, „Modern X86 Assembly Language Programming: Covers x86 64-bit, AVX, AVX2, and AVX-512”. Apress, 2018 4. Kip Irvine, „Assembly Language for x86 Processors”, 7th edition, Pearson India, 2018 |
Lab equipment | A PC platform with Windows OS installed (eventually Linux platform with Virtual Machine with Windows), Visual Studio Community Edition (or higher version). Local or remote access with GUI (RDP, VNC). |
Virtual lab | n/a |
MOOC course | https://multiasm.eu/mooc/course/view.php?id=15 |