Course detail
Machine Level Programming
FIT-ISUAcad. year: 2017/2018
Numeral systems. Unsigned and signed numbers representations, arithmetic in binary system. Machine language, assembly language, assembler. Intel Pentium processors architecture (registers, main memory organization, interrupt system). Integer instruction set. Programming in machine language. NASM assembly language, symbolic instruction, directives, macroinstructions. Assembling and linking. Standard control transfer and passing of parameters in procedures and functions. Operation system services. Programming of PC peripherals (videoRAM, mouse, speaker). Real numbers representation, IEEE standard. FPU architecture and instruction set. FPU programming. Introduction to FITkit.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Students acquire basic knowledge of principles of processor architecture and operation that belongs to basic knowledge of all IT specialists. They learn to solve simple problems in assembly language and maintain proper documentation of elementary computer programs.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
- Syllabus of lectures:
- Introduction, numerical systems, arithmetic.
- Machine code (language), assembly language, assembler.
- Real mode of Pentium processors: registers, operands, instruction formats, memory addressing, interrupts.
- Pentium processor instruction set. Integer instructions.
- Integer instructions, continuation.
- Integer instructions, continuation.
- Principles of programming in machine language, typical control constructions.
- Assembly language.
- Assembly language, continuation.
- Modules, libraries, operational system services. Procedures and functions, standard control transfer and passing of parameters.
- FPU of Pentium processors.
- FPU instruction set.
- Principles of symbolic language programming.
- Simple programs in assembly language.
- NASM assembler and LINK linker.
- Operation system services. Programming of PC peripherals.
- Standard control transfer and passing of parameters in procedures and functions.
- Individual more complex programs.
- FPU programming.
Syllabus of computer exercises:
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- Mid-Term written test
- Evaluation of activity in computer exercises
Recommended optional programme components
Prerequisites and corequisites
- compulsory prerequisite
Introduction to Programming Systems
Basic literature
The Netwide Assembler: NASM, Quick reference Guide [online]. [cit. 2022-01-06]. Dostupné z: https://www.nasm.us/xdoc/2.15.05/nasmdoc.pdf
Recommended reading
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
Irvine, Kip R. Assembly language for x86 processors. Seventh edition. Boston: Pearson, 2015. ISBN 978-0133769401.
Marek, R.: Assembler pro PC - učíme se programovat v jazyce, Computer Press, 2003, ISBN 80-7226-843-0
The Netwide Assembler: NASM, Quick reference Guide [online]. [cit. 2022-01-06]. Dostupné z: https://www.nasm.us/xdoc/2.15.05/nasmdoc.pdf
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Introduction, numerical systems, arithmetic.
- Machine code (language), assembly language, assembler.
- Real mode of Pentium processors: registers, operands, instruction formats, memory addressing, interrupts.
- Pentium processor instruction set. Integer instructions.
- Integer instructions, continuation.
- Integer instructions, continuation.
- Principles of programming in machine language, typical control constructions.
- Assembly language.
- Assembly language, continuation.
- Modules, libraries, operational system services. Procedures and functions, standard control transfer and passing of parameters.
- FPU of Pentium processors.
- FPU instruction set.
Exercise in computer lab
Teacher / Lecturer
Syllabus
- Principles of symbolic language programming.
- Simple programs in assembly language.
- NASM assembler and LINK linker.
- Operation system services. Programming of PC peripherals.
- Standard control transfer and passing of parameters in procedures and functions.
- Individual more complex programs.
- FPU programming.