Course details

Machine Level Programming

ISU Acad. year 2020/2021 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

Orság Filip, Ing., Ph.D. (DITS FIT BUT)

Deputy Guarantor

Language of instruction

Czech

Completion

Credit+Examination (written)

Time span

39 hrs lectures, 26 hrs pc labs

Assessment points

60 exam, 12 mid-term test, 28 exercises

Department

Lecturer

Instructor

Drga Jozef, Mgr. (DITS FIT BUT)
Goldmann Tomáš, Ing. (DITS FIT BUT)
Hodaň David, Ing. (DCSY FIT BUT)
Homoliak Ivan, Ing., Ph.D. (DITS FIT BUT)
Husa Jakub, Ing. (DCSY FIT BUT)
Januš Filip, Ing. (DITS FIT BUT)
Kanich Ondřej, Ing., Ph.D. (DITS FIT BUT)
Malaník Petr, Ing. (DITS FIT BUT)
Malinka Kamil, Mgr., Ph.D. (DITS FIT BUT)
Orság Filip, Ing., Ph.D. (DITS FIT BUT)
Rydlo Štěpán, Ing. (DITS FIT BUT)
Škandera Juraj, Mgr. (DCGM FIT BUT)
Tinka Jan, Ing. (DITS FIT BUT)
Žufan Petr, Ing. (DCSY FIT BUT)

Subject specific learning outcomes and competences

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.

Generic learning outcomes and competences

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.

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.

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 kwnowledge and skills

Basic knowledge of the C language programming.

Study literature

  • DUNTEMANN, Jeff. Assembly language step-by-step: programming with linux. 3rd ed. Indianapolis: Wiley, 2009. ISBN 978-0470497029.
  • Carter, P.: Assembly language tutorial, http://www.drpaulcarter.com/pcasm/, 2002
  • IRVINE, Kip R. Assembly language for x86 processors. Seventh edition. Boston: Pearson, 2015. ISBN 978-0133769401.

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

Controlled instruction

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

To successfully pass the course students must earn at least 25 points from the final examination.

Schedule

DayTypeWeeksRoomStartEndLect.grpGroupsInfo
Monexam2021-06-07 E104 E105 E112 11:0013:50 1BIA 1BIB 2BIA 2BIB 2. oprava
Monlecturelectures D105 11:0013:50 1BIB 2BIA 2BIB xx
Monlecture2., 3., 4., 5., 6., 8., 10., 11., 12., 13. of lectures L118 11:0013:50YT, ZP
Monlecturelectures D0207 D105 14:0016:50 1BIA 2BIA 2BIB xx
Tuecomp.lablectures N103 N104 N105 08:0009:50 1BIA 1BIB 2BIA 2BIB xx
Tuecomp.lablectures N103 N104 N105 10:0011:50 1BIA 1BIB 2BIA 2BIB xx
Tuecomp.lablectures N103 N104 N105 12:0013:50 1BIA 1BIB 2BIA 2BIB xx
Tuecomp.lablectures N103 N104 N105 14:0015:50 1BIA 1BIB 2BIA 2BIB xx
Tuecomp.lablectures N103 N104 N105 16:0017:50 1BIA 1BIB 2BIA 2BIB xx
Tuecomp.lablectures N103 N104 N105 18:0019:50 1BIA 1BIB 2BIA 2BIB xx
Wedcomp.lablectures N103 N104 N105 08:0009:50 1BIA 1BIB 2BIA 2BIB xx
Wedcomp.lablectures N103 N104 N105 10:0011:50 1BIA 1BIB 2BIA 2BIB xx
Wedcomp.lablectures N103 N104 N105 12:0013:50 1BIA 1BIB 2BIA 2BIB xx
Wedcomp.lablectures N103 N104 N105 14:0015:50 1BIA 1BIB 2BIA 2BIB xx
Wedcomp.lablectures N103 N104 N105 16:0017:50 1BIA 1BIB 2BIA 2BIB xx
Wedcomp.lablectures N103 N104 N105 18:0019:50 1BIA 1BIB 2BIA 2BIB xx
Thuexam2021-05-13 D0206 D0207 D105 E104 E105 08:0010:50 1BIA 1BIB 2BIA 2BIB řádná
Thucomp.lablectures N104 08:0009:50 1BIA 1BIB
Thuexam2021-05-27 D0206 D0207 D105 E112 10:0012:50 1BIA 1BIB 2BIA 2BIB 1. oprava
Thucomp.lablectures N104 10:0011:50 1BIA 1BIB
Thuexam2021-05-13 D0206 D0207 D105 E104 E105 11:0013:50 1BIA 1BIB 2BIA 2BIB řádná
Thucomp.lablectures N104 12:0013:50 1BIA 1BIB
Thucomp.lablectures N104 14:0015:50 1BIA 1BIB
Thucomp.lablectures N104 16:0017:50 1BIA 1BIB
Thucomp.lablectures N104 18:0019:50 1BIA 1BIB
Friexam2021-05-07 A112 A218 C114 C123 C126 C127 C228 D0206 D0207 D105 E105 G108 G202 P108 P209 Q204 Q304 R212 S206 11:0013:50 1BIA 1BIB 2BIA 2BIB předtermín
Friexam2021-05-07 A112 A113 D0206 D0207 D105 E105 14:0016:50 1BIA 1BIB předtermín

Course inclusion in study plans

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