Assembly language programming 1000-2M11PWA
1. Basic knowledge: machine language, development envioronments for assembly language programming, the process of building low-level programs.
2. Low-level programming in C. How are basic constructs of C implemented in machine language. Disassemblers.
3. Processor architecture, registers, addressing modes, machine instruction format, instruction types.
4. Internal program structure: sections, data declarations, starting the execution, using operating system functions. Assembler directives.
5. Implementing procedure calls. Return address. Conventions of parameter passing (registers, stack). Nesting procedure calls. ABI standards.
6. Linking assembler modules with high-level programming languages. Direct insertion of assembler instructions.
7. Low-level software. Linkers and loaders. Formats of binary files, relocation, linking, static and dynamic libraries.
8. Controlling devices at the hardware level. Device drivers.
Type of course
Prerequisites (description)
Learning outcomes
Knowledge
Knows problems, techniques and tools used for programming in machine language, in particular:
● deeper practical knowledge about processor architecture
● deeper practical knowledge about operating systems, esp. binary modules and libraries
Assessment criteria
To pass the course it is necessary to:
- write and test in thelaboratory 3-4 programs - max 70 pt
- pass a written exam (format of extended test) - max 30 pt
For positive grade one has to:
- receive totally at least 60 pt
- receive at least 10 pt from the exam.
Bibliography
Printed books:
- A.S. Tanenbaum, Structured Computer Organization
- Daniel W. Lewis, Między asemblerem a językiem C. Podstawy programowania wbudowanego
- M.L. Schmitt, Pentium Processors
However we will use mostly materials which are accesible
on WWW - the HTML page of the course contains appropriate links.
Additional information
Information on level of this course, year of study and semester when the course unit is delivered, types and amount of class hours - can be found in course structure diagrams of apropriate study programmes. This course is related to the following study programmes:
- Bachelor's degree, first cycle programme, Computer Science
- Master's degree, second cycle programme, Computer Science
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: