Assembly language programming
General data
Course ID: | 1000-2M11PWA |
Erasmus code / ISCED: |
11.303
|
Course title: | Assembly language programming |
Name in Polish: | Programowanie w asemblerze |
Organizational unit: | Faculty of Mathematics, Informatics, and Mechanics |
Course groups: |
(in Polish) Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka Elective courses for Computer Science |
ECTS credit allocation (and other scores): |
(not available)
|
Language: | English |
Type of course: | elective monographs |
Prerequisites (description): | Students will learn assembly language programming, including communication with the operating system and direct access to devices. Additionally we will discuss techniques of physical code generation necessary for implementing high-level programming languages - this will complement the material taught in MRJP. In the laboratory students will write and test 4-5 programs for at least two different processor architectures: Intel/AMD x86-64/32 and ARM. |
Short description: |
Students will learn assembly language programming, including communication with the operating system and direct access to devices. Additionally we will discuss techniques of physical code generation necessary for implementing high-level programming languages - this will complement the material taught in MRJP. |
Full description: |
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. |
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. |
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 methods and 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. |
Copyright by University of Warsaw.