Machine Level Programming
ISU Acad. year 2020/2021 Summer semester 6 credits
Language of instruction
Subject specific learning outcomes and competences
Generic learning outcomes and competences
Why is the course taught
Prerequisite kwnowledge and skills
- 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.
- Intel Architecture Software Developer's Manual,Volume 2: Instruction Set Reference, https://www.fit.vutbr.cz/study/courses/IAS/private/24319102.pdf
- The Netwide Assembler: NASM, Quick reference Guide, 2012, http://www.nasm.us/xdoc/2.10.05/nasmdoc.pdf
Syllabus of lectures
- Introduction, numeral systems, number specification, binary arithmetic.
- Basic functions of a processor, machine language, symbolic language, assembler.
- Processor architecture - registers, operand, instruction format, memory addressing, interrupts.
- Processor architecture - transfers, arithmetical and logical instructions.
- Processor architecture - shifts and rotations, control transfer.
- Processor architecture - other instructions.
- Mid-term written test.
- Basics of low-level programming, elementary control structures.
- Functions and calling conventions.
- Modular programming, libraries, operating system services.
- Coprocessor FPU - architecture, real number format, instruction set.
- Coprocessor FPU - instruction set, programming, examples.
- Compiler for assembler - pseudoinstructions, directives, expressions, operators, operands and macros.
Syllabus of computer exercises
- Numeral systems (numeral system conversions), number representation (signed integers).
- Compilation, linking and execution of an application in a command line environment. Debugging in an Integrated Development Environment (IDE) and in a standalone debugger.
- Working with registers and memory (variables, arrays).
- Arithmetical instruction.
- Logical instructions, shifts and rotations.
- Jump instructions, function calling and parameter passing via registers. Library for basic input/output operations.
- Basic control structures (if-then-else, while, do-while, for, switch-case).
- String instructions for array manipulation.
- Function calling and calling conventions. Calling of services and functions of the operating system, calling of functions from the high-level language libraries.
- Programming of the FPU coprocessor.
- mid-term written test
- tests in 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
To successfully pass the course students must earn at least 25 points from the final examination.
Course inclusion in study plans