Programowanie niskopoziomowe

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 — Politechnika Warszawska

Wymagania wstępne

  • Programowanie w języku C
  • Architektura komputerów (może być równolegle)

Zawartość

  • Wprowadzenie mdash; zastosowanie programowania asemblerowego i hybrydowego, środowisko pracy programu w systemie operacyjnym i bez niego.
  • Proces tworzenia programu — kompilacja, łączenie. Oprogramowanie narzędziowe — kompilator, asembler, konsolidator. Biblioteki. Tworzenie programu wielomodułowego.
  • Programowanie asemblerowe w środowisku systemu operacyjnego — sekcje, deklaracje danych, ładowanie i start programu, korzystanie z funkcji systemowych.
  • 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.
  • Wprowadzenie do programowania jednostek wektorowych.

Literatura

  • J. Biernat, Arytmetyka komputerów, Wydawnictwo Naukowe PWN, Warszawa 1996
  • Materiały firmowe - dokumenty techniczne dostępne w sieci WWW - MIPS, Intel, AMD
  • Specyfikacje Application Binary Interface


Moduły

  1. Wiadomości podstawowe
  2. Proces tworzenia programu
  3. Programowanie asemblerowe w środowisku systemu operacyjnego
  4. Programowanie hybrydowe
  5. Techniki programowania asemblerowego
  6. Programowanie jednostek wektorowych