Programowanie niskopoziomowe: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 15: | Linia 15: | ||
=== Wymagania wstępne === | === Wymagania wstępne === | ||
Programowanie w języku C | *Programowanie w języku C | ||
*Architektura komputerów (może być równolegle) | |||
Architektura komputerów (może być równolegle) | |||
=== Zawartość === | === Zawartość === |
Wersja z 11:35, 7 lip 2006
Forma zajęć
wykład (15 godzin) + laboratorium (15 godzin)
Opis
Celem przedmiotu jest zapoznanie słuchaczy z zasadami programowania asemblerowego i hybrydowego oraz z narzędziami do tego służącymi. Treść wykładu obejmuje niezbędne podstawy teoretyczne, w tym opis środowiska pracy programu, zapoznanie z oprogramowaniem narzędziowym (asembler, kompilator C, konsolidator) oraz zasady programowania asemblerowego i hybrydowego. Zajęcia projektowe mają na celu stworzenie przez studenta kilku programów asemblerowych i hybrydowych i praktyczne zapoznanie z zagadnieniami omawianymi w trakcie wykładu.
Sylabus
Autor
Grzegorz Mazur
Wymagania wstępne
- Programowanie w języku C
- Architektura komputerów (może być równolegle)
Zawartość
- Wprowadzenie - zastosowanie programowania asemblerowego i hybrydowego, środowisko pracy programu w systemie operacyjnym i bez niego.
- Programowanie asemblerowe w środowisku systemu operacyjnego - sekcje, deklaracje danych, ładowanie i start programu, korzystanie z funkcji systemowych.
- Proces tworzenia programu - kompilacja, łączenie. Oprogramowanie narzędziowe - kompilator, asembler, konsolidator. Biblioteki. Tworzenie programu wielomodułowego.
- Wywoływanie procedur. Konwencje wołania. Standardy ABI - analiza kilku wybranych konwencji dla procesorów RISC (MIPS, ARM) i CISC (x86, AMD64). Tworzenie oprogramowania hybrydowego.
- Techniki programowania asemblerowego. Metody optymalizacji kodu możliwe do realizacji wyłącznie na poziomie asemblera. Błędy i złe nawyki w programowaniu asemblerowym.
- Zasady optymalizacji programu pod kątem redukcji opóźnień i wykorzystania równoczesności wykonania instrukcji w procesorach superskalarnych.
- Wprowadzenie do programowania jednostek wektorowych.
Literatura
- J. Biernat. Arytmetyka komputerów. PWN, 1996.
- Materiały firmowe - dokumenty techniczne dostępne w sieci www - MIPS, Intel, AMD.
- Specyfikacje Application Binary Interface.