University of Warsaw - Central Authentication System
Strona główna

Assembly language programming

General data

Course ID: 1000-2M11PWA
Erasmus code / ISCED: 11.303 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0613) Software and applications development and analysis The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
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) Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
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.

This course is not currently offered.
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
contact accessibility statement USOSweb 7.0.3.0 (2024-03-22)