Course details

Machine Level Programming

ISU Acad. year 2023/2024 Summer semester 6 credits

Numeral systems: signed and unsigned integer binary representation, binary arithmetic, real numbers in the IEEE-754 format. Assembly language: assembler, basic functions of a central processing unit (CPU). Specific CPU architecture: registers, memory organization, addressing, interrupt system, coprocessors, instruction set and instruction format. Programming in assembler: common control structures, compilation and linking of the code. Relation to the high-level programming languages: calling conventions, operating system services. Coprocessor: real number format, instruction set, programming of the floating point unit.

Guarantor

Course coordinator

Language of instruction

Czech, English

Completion

Credit+Examination (written)

Time span

  • 39 hrs lectures
  • 26 hrs pc labs

Assessment points

  • 60 pts final exam (written part)
  • 16 pts mid-term test (written part)
  • 24 pts numeric exercises

Department

Lecturer

Instructor

Learning objectives

To acquaint students with computer programming at the lowest level with focus at chosen processor architecture. To introduce and teach how to actively work with numeral systems, representation of the signed and unsigned numbers, arithmetic in the binary numeral system and representation of the real numbers. To familiarise with a specific processor architecture, its instruction format and addressing modes. To teach to actively work with the common control structures in assembler using given instruction set. To show the connection of programming at a low level and high-level programming via libraries and operating system services. To teach how to use floating point unit to calculate with real numbers.
Students acquaint with one specific processor architecture. They learn how to use the most important instructions of the processor and its coprocessor, programming of the control structures and they develop learn to develop simple applications (compilation and linking). They learn about calling conventions, some basic operating system services and how to call them. They learn how to practically use this knowledge. Students learn about processor architecture form the low-level programming point of view, which is one of the very basic skills of an IT professional. They learn how to develop simple applications or libraries in assembler and how to connect them to high-level programming language applications.

Why is the course taught

Elementary knowledge about low-level processor functionality from a programmer's point of view is indispensable for a future IT expert. All programmers should know how does a processor work and how to program it at its instruction level.

Prerequisite knowledge and skills

Basic knowledge of the C language programming.

Study literature

  • Marek, R.: Assembler pro PC - učíme se programovat v jazyce, Computer Press, 2003, ISBN 80-7226-843-0
  • Duntemann, Jeff. Assembly language step-by-step: programming with linux. 3rd ed. Indianapolis: Wiley, 2009. ISBN 978-0470497029.
  • Irvine, Kip R. Assembly language for x86 processors. Seventh edition. Boston: Pearson, 2015. ISBN 978-0133769401.
  • Intel® 64 and IA-32 architectures software developer’s manual combined volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4. Webové stránky společnosti Intel [online]. [cit. 2022-01-06]. Dostupné z: https://www.intel.com/content/dam/develop/public/us/en/documents/325462-sdm-vol-1-2abcd-3abcd.pdf
  • The Netwide Assembler: NASM, Quick reference Guide [online]. [cit. 2022-01-06]. Dostupné z: https://www.nasm.us/xdoc/2.15.05/nasmdoc.pdf

Fundamental literature

Syllabus of lectures

  1. Introduction, numeral systems, number specification, binary arithmetic.
  2. Basic functions of a processor, machine language, symbolic language, assembler.
  3. Processor architecture - registers, operand, instruction format, memory addressing, interrupts.
  4. Processor architecture - transfers, arithmetical and logical instructions.
  5. Processor architecture - shifts and rotations, control transfer.
  6. Processor architecture - other instructions.
  7. Mid-term written test.
  8. Basics of low-level programming, elementary control structures.
  9. Functions and calling conventions.
  10. Modular programming, libraries, operating system services.
  11. Coprocessor FPU - architecture, real number format, instruction set.
  12. Coprocessor FPU - instruction set, programming, examples.
  13. Compiler for assembler - pseudoinstructions, directives, expressions, operators, operands and macros.

Syllabus of computer exercises

  1. Numeral systems (numeral system conversions), number representation (signed integers).
  2. Compilation, linking and execution of an application in a command line environment. Debugging in an Integrated Development Environment (IDE) and in a standalone debugger.
  3. Working with registers and memory (variables, arrays).
  4. Arithmetical instruction.
  5. Logical instructions, shifts and rotations.
  6. Jump instructions, function calling and parameter passing via registers. Library for basic input/output operations.
  7. Test.
  8. Basic control structures (if-then-else, while, do-while, for, switch-case).
  9. String instructions for array manipulation.
  10. Test.
  11. Function calling and calling conventions. Calling of services and functions of the operating system, calling of functions from the high-level language libraries.
  12. Programming of the FPU coprocessor.
  13. Test.

Progress assessment

  • mid-term written test
  • tests in computer exercises


  • evaluated tests in the computer exercises
  • tests in the computer exercises missed by a valid proved reason (health issues or other valid reasons) will be compensated within the next computer exercise or another date set by the guarantor of the course

Exam prerequisites

At least 20 points earned during the semester.

Schedule

DayTypeWeeksRoomStartEndCapacityLect.grpGroupsInfo
Mon exam 2024-05-20 D0206 D0207 D105 E104 E112 09:0011:50 2. termín
Mon exam 2024-06-03 E104 09:0011:50 3. termín (E104)
Mon exam 2024-06-03 E112 09:0011:50 3. termín (E112)
Mon exam 2024-03-18 D105 11:0012:30 Termín D105-11:00
Mon lecture 1., 2., 3., 4., 5., 6., 8., 10., 12., 13. of lectures D105 11:0013:50400 1BIB 2BIA 2BIB xx 30 - 49 Orság
Mon lecture 2024-04-15 D105 11:0013:50400 1BIB 2BIA 2BIB xx 30 - 49 Jaroš
Mon exam 2024-03-18 D105 12:3014:00 Termín D105-12:30
Mon exam 2024-03-18 D0206 14:0015:30 Termín D206-14:00
Mon exam 2024-03-18 D105 14:0015:30 Termín D105-14:00
Mon exam 2024-04-29 D0206 14:0016:50 předtermín 1 (D0206)
Mon exam 2024-04-29 D105 14:0016:50 předtermín 1 (D105)
Mon lecture 1., 2., 3., 4. of lectures D0206 D0207 D105 14:0016:50560 1BIA 2BIA 2BIB xx 10 - 29 Husa
Mon lecture 5., 6., 8., 10., 13. of lectures D0206 D0207 D105 14:0016:50560 1BIA 2BIA 2BIB xx 10 - 29 Jaroš
Mon lecture 11., 12. of lectures D0206 D0207 D105 14:0016:50560 1BIA 2BIA 2BIB xx 10 - 29 Goldmann
Mon exam 2024-03-18 D0206 15:3017:00 Termín D206-15:30
Mon exam 2024-03-18 D105 15:3017:00 Termín D105-15:30
Tue comp.lab lectures N104 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx Setinský
Tue comp.lab *) 1., 2., 3., 4., 5., 6., 7., 8., 9. of lectures N105 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx
Tue comp.lab 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N103 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Tue comp.lab 2024-02-06 N103 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Tue comp.lab *) 2024-04-30 N105 08:0009:5020 1BIA 1BIB 2BIA 2BIB 3BIT xx Orság Náhrada za 1. 5. , 8:00, N105
Tue comp.lab 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N103 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Tue comp.lab lectures N104 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Setinský
Tue comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 11., 12., 13. of lectures N105 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Goldmann
Tue comp.lab 2024-02-06 N103 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Tue comp.lab 2024-04-09 N105 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Tue comp.lab *) lectures N103 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx
Tue comp.lab *) 1., 2., 3., 4., 5., 6., 7., 8., 9. of lectures N104 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx
Tue comp.lab 1., 4., 5., 6., 7., 8., 9., 11., 12., 13. of lectures N105 12:0013:5025 1BIA 1BIB 2BIA 2BIB xx Jaroš
Tue comp.lab 2., 3. of lectures N105 12:0013:5025 1BIA 1BIB 2BIA 2BIB xx Olšák
Tue comp.lab 2024-04-09 N105 12:0013:5025 1BIA 1BIB 2BIA 2BIB xx Orság
Tue comp.lab *) 2024-04-30 N104 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Orság Náhrada za 1. 5. , 10:00, N105
Tue comp.lab 2., 3., 4., 5., 7., 8., 9., 10., 11., 12., 13. of lectures N103 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Tue comp.lab lectures N104 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Tue comp.lab 1., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N105 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Jaroš
Tue comp.lab 2., 3. of lectures N105 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Olšák
Tue comp.lab 2024-02-06 N103 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Goldmann
Tue comp.lab 2024-03-12 N103 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Sedlák
Tue comp.lab lectures N104 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Tue comp.lab 1., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N105 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Jaroš
Tue comp.lab 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N103 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Tue comp.lab 2., 3. of lectures N105 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Olšák
Tue comp.lab 2024-02-06 N103 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Klhůfek
Tue comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 10., 11., 12., 13. of lectures N103 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Klhůfek
Tue comp.lab lectures N104 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Tue comp.lab *) 1., 2., 3., 4., 5., 6., 7., 8., 9. of lectures N105 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx
Tue comp.lab 2024-04-02 N103 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Sedlák
Tue comp.lab *) 2024-04-23 N105 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Orság Náhradní testy
Tue comp.lab *) 2024-04-30 N105 18:0019:5020 1BIA 1BIB 2BIA 2BIB 3BIT xx Orság Náhradní testy
Wed comp.lab *) 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N103 N104 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 11., 12. of lectures N105 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Wed comp.lab 2024-04-10 N105 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx Goldmann
Wed comp.lab *) 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N103 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 11., 12. of lectures N105 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Wed comp.lab 1., 2., 3., 4., 5., 6., 8., 9., 10., 12. of lectures N104 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Sedlák
Wed comp.lab 2024-03-20 N104 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Wed comp.lab 2024-04-10 N105 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Jaroš
Wed comp.lab 2024-04-17 N104 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Klhůfek
Wed comp.lab 1., 2., 3., 4., 5., 6., 8., 9., 10., 12. of lectures N104 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Sedlák
Wed comp.lab 1., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N105 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Jaroš
Wed comp.lab 2., 3., 4., 5., 7., 8., 9., 10., 11., 12. of lectures N103 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Wed comp.lab 2., 3. of lectures N105 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Olšák
Wed comp.lab 7., 11. of lectures N104 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Setinský
Wed comp.lab 2024-02-07 N103 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Goldmann
Wed comp.lab 2024-03-13 N103 12:0013:5020 1BIA 1BIB 2BIA 2BIB xx Sakin
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N104 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 10., 11., 12. of lectures N103 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Klhůfek
Wed comp.lab 1., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N105 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Jaroš
Wed comp.lab 2., 3. of lectures N105 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Olšák
Wed comp.lab 2024-04-03 N103 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Semerád
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N103 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Semerád
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N104 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Wed comp.lab 1., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N105 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Jaroš
Wed comp.lab 2., 3. of lectures N105 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Olšák
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N103 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Semerád
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N104 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Wed comp.lab 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures N105 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Sedlák
Thu comp.lab 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N104 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Thu comp.lab 2024-02-08 N104 08:0009:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Thu comp.lab *) 2024-05-02 N105 08:0009:5020 1BIA 1BIB 2BIA 2BIB 3BIT xx Orság
Thu comp.lab 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N104 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Grézl
Thu comp.lab lectures N105 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Thu comp.lab 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures N204 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Semerád
Thu comp.lab 2024-02-08 N104 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Orság
Thu comp.lab 2024-02-08 N204 10:0011:5020 1BIA 1BIB 2BIA 2BIB xx Sakin
Thu comp.lab lectures N104 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Thu comp.lab lectures N204 14:0015:5020 1BIA 1BIB 2BIA 2BIB xx Sedlák
Thu comp.lab lectures N103 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Sakin
Thu comp.lab lectures N104 16:0017:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Thu comp.lab lectures N103 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Sakin
Thu comp.lab lectures N104 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx Husa
Thu comp.lab *) lectures N105 18:0019:5020 1BIA 1BIB 2BIA 2BIB xx
Fri exam 2024-05-03 D0206 10:0012:50 předtermín 2 (D0206)
Fri exam 2024-05-03 D105 10:0012:50 předtermín 2 (D105)
Fri exam 2024-05-03 E112 10:0012:50 předtermín 2 (E112)
Fri exam 2024-05-10 A112 13:0015:50 1. termín (A112)
Fri exam 2024-05-10 D0206 13:0015:50 1. termín (D0206)
Fri exam 2024-05-10 D0207 13:0015:50 1. termín (D0207)
Fri exam 2024-05-10 D105 13:0015:50 1. termín (D105)
Fri exam 2024-05-10 E104 13:0015:50 1. termín (E104)
Fri exam 2024-05-10 E105 13:0015:50 1. termín (E105)
Fri exam 2024-05-10 G202 13:0015:50 1. termín (G202)
It is not possible to register this class in Studis. (Some exercises may be opened later if needed, but this is not guaranteed.)

Course inclusion in study plans

  • Programme BIT, 1st year of study, Compulsory
  • Programme BIT (in English), 1st year of study, Compulsory
  • Programme IT-BC-3, field BIT, 1st year of study, Compulsory
Back to top