Programowanie w asemblerze
Informacje ogólne
Kod przedmiotu: | 1000-2M11PWA | Kod Erasmus / ISCED: |
11.303
![]() ![]() |
Nazwa przedmiotu: | Programowanie w asemblerze | ||
Jednostka: | Wydział Matematyki, Informatyki i Mechaniki | ||
Grupy: |
Przedmioty monograficzne dla III - V roku informatyki Przedmioty obieralne dla informatyki Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka |
||
Punkty ECTS i inne: |
6.00 ![]() ![]() |
||
Język prowadzenia: | angielski | ||
Rodzaj przedmiotu: | monograficzne |
||
Założenia (opisowo): | Celem jest nauczenie studentów programowania w języku wewnętrznym procesora, z uwzględnieniem komunikowania się z systemem operacyjnym i ewentualnie bezpośredniego korzystania z urządzeń. Dodatkowo omówione zostaną zasady generowania kodu fizycznego dla potrzeb implementacji języków programowania, co stanowi uzupełnienie materiału o metodach realizacji języków programowania. W ramach zajęć laboratoryjnych studenci powinni napisać kilka programów na co najmniej dwie różne architektury procesorów: Intel/AMD x86-64/32 i ARM. |
||
Skrócony opis: |
Celem jest nauczenie studentów programowania w języku wewnętrznym procesora, z uwzględnieniem komunikowania się z systemem operacyjnym i ewentualnie bezpośredniego korzystania z urządzeń. Dodatkowo omówione zostaną zasady generowania kodu fizycznego dla potrzeb implementacji języków programowania, co stanowi uzupełnienie materiału o metodach realizacji języków programowania. |
||
Pełny opis: |
1. Wiadomości podstawowe: język wewnętrzny, środowisko uruchomieniowe do programowania w asemblerze, proces tworzenia programu. 2. Programowanie niskopoziomowe w języku C. Realizacja podstawowych konstrukcji w języku wewnętrznym. Deasemblacja. 3. Architektura procesora, rejestry, tryby adresowania, format instrukcji języka wewnętrznego, typy instrukcji. 4. Struktura programu: sekcje, deklaracje danych, start programu, korzystanie z funkcji systemowych. Dyrektywy asemblera. 5. Realizacja wywoływania procedur. Adres powrotny. Konwencje przekazywania parametrów (rejestry, stos). Zagnieżdżanie wywołań procedur. Standardy ABI. 6.Łączenie modułów w asemblerze z językami programowania wyższego poziomu. Wstawki asemblerowe. 7. Oprogramowanie niskopoziomowe. Program ładujący. Formaty plików binarnych, relokacja, linkowanie, biblioteki statyczne i dynamiczne. 8. Sterowanie urządzeniami na poziomie sprzętu. Sterowniki urządzeń 9. Niskopoziomowe techniki przełamywania mechanizmów ochrony (np. nadpisywanie stosu, nietypowe wykorzystywanie bibliotek). |
||
Literatura: |
Pozycje książĸowe: - A.S. Tanenbaum, Structured Computer Organization - Daniel W. Lewis, Między asemblerem a językiem C. Podstawy programowania wbudowanego - M.L. Schmitt, Procesory Pentium Większość literatury jednak jest dostępna w sieci WWW --- na stronie przedmiotu znajdują się odpowiednie odwołania. |
||
Efekty uczenia się: |
Wiedza Zna problemy, techniki i narzędzia związane z programowanie w języku maszynowym, w szczególności: ● ma pogłębioną wiedzę praktyczną w zakresie architektury procesora, ● ma pogłębioną wiedzę praktyczną w zakresie systemów operacyjnych, zwłaszcza postaci modułów binarnych i bibliotek, ● rozumie zagrożenia dla bezpieczeństwa związane z możliwościami obejścia mechanizmów ochrony dzięki użyciu technik niskopoziomowych, ● zna przykłady kilku architektur procesorów i związanych z nimi API. Umiejętności Potrafi pisać małe i średnie moduły i programy w języku procesora. Kompetencje - potrafi precyzyjnie formułować pytania, służące pogłębieniu własnego zrozumienia danego tematu, w szczególności eksperymentalnie weryfikować dokumentację firmową i uzupełniać napotkane luki. |
||
Metody i kryteria oceniania: |
Warunkiem zaliczenia jest: - napisanie i uruchomienie w laboratorium 3-4 programów (maks. 70 pkt); - zdanie egzaminu pisemnego (format rozszerzonego testu (maks. 30 pkt). Aby otrzymać pozytywną ocenę należy: - uzyskać w sumie min. 60 pkt; - zdać egzamin co najmniej na 10 pkt. |
Zajęcia w cyklu "Semestr zimowy 2021/22" (zakończony)
Okres: | 2021-10-01 - 2022-02-20 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin ![]() Wykład, 30 godzin ![]() |
|
Koordynatorzy: | Zbigniew Jurkiewicz | |
Prowadzący grup: | Zbigniew Jurkiewicz | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski.