Programowanie niskopoziomowe: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 20: Linia 20:
=== Zawartość ===
=== Zawartość ===


*Wprowadzenie - zastosowanie programowania asemblerowego i hybrydowego, środowisko pracy programu w systemie operacyjnym i bez niego.
*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.
*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.
*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.
*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.
*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.
*Zasady optymalizacji programu pod kątem redukcji opóźnień i wykorzystania równoczesności wykonania instrukcji w procesorach superskalarnych.

Wersja z 12:37, 27 wrz 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 — 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.
  • 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.

Moduły

  1. Moduł 1
  2. Moduł 2
  3. Moduł 3
  4. Moduł 4
  5. Moduł 5
  6. Moduł 6
  7. Programowanie jednostek wektorowych