Skip to main content
Skip header
Terminated in academic year 2022/2023

Assembly Languages

Type of study MasterFollow-up Master
Language of instruction English
Code 460-4083/04
Abbreviation SOJ
Course title Assembly Languages
Credits 6
Coordinating department Department of Computer Science
Course coordinator Ing. Petr Olivka, Ph.D.

Subject syllabus

Lecture:

1. Intel processor, operands, registers, addressing, index and base registers.
2. Data moving instructions, direct and indirect addressing.
3. Arithmetical and logical instructions.
4. Jumps and conditional instructions. String instructions.
5. Instruction set extensions during Intel processors history.
6. Linking assembly language with C language.
7. Argument passing to functions. Passing of return values.
8. 64-bit extensions of modern CPUs.
9. Static and dynamic linking, implementation of OOP and some C++ features.
10. Calculations with large numbers - basics.
11. Calculations with large numbers - without size limitation.
12. Format of float and fixed point numbers, computing with float and fixed point numbers.
13. FPU, SSE unit.

Labs:

1. Registers, addressing modes,
2. Linking assembly and C language. Public, private and extern symbols.
3. Jumps and conditional instructions.
4. Logical and arithmetical instructions.
5. String instructions.
6. Argument passing using stack.
7. Manipulation with base data types in functions.
8. Calculations with large numbers using registers.
9. Computing with N-bits numbers, adding, shifting, rotating.
10. Computing with N-bits numbers, multiplication, division, square root.
11. 64-bits mode programming.
12. Float and fixed number computing.
13. FPU and SSE unit usage.

Literature

[1] Barry B. Brey, The Intel Microprocessors, Prentice Hall; 8 edition (June 28, 2008), ISBN: 0135026458 
[2] Benjamin Ray Seyfarth, Introduction to 64 Bit Intel Assembly Language Programming for Linux, CreateSpace Independent Publishing Platform; 2 edition (June 23, 2012), ISBN: 1478119209 
[3] http://www.intel.com and http://www.amd.com - Programming Manuals for the lates CPU.

Advised literature

[1] NASM compiler documentation, http://www.nasm.us