Programowanie w asemblerze 1000-2M11PWA
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).
Rodzaj przedmiotu
Założenia (opisowo)
Efekty kształcenia
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.
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.
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.
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: