Programowanie niskopoziomowe: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
(Nie pokazano 20 wersji utworzonych przez 3 użytkowników) | |||
Linia 1: | Linia 1: | ||
== | == 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. | |||
*Wprowadzenie | |||
*Programowanie asemblerowe w środowisku systemu operacyjnego | |||
*Wywoływanie procedur. Konwencje wołania. Standardy ABI | |||
*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. | ||
--> | |||
*Wprowadzenie do programowania jednostek wektorowych. | *Wprowadzenie do programowania jednostek wektorowych. | ||
==Literatura== | === 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== | |||
* | *[[Programowanie Niskopoziomowe - Wprowadzenie|Wprowadzenie]] | ||
* | #[[Programowanie niskopoziomowe / Moduł 1: Wiadomości podstawowe|Wiadomości podstawowe]] | ||
#[[Programowanie niskopoziomowe / Moduł 2: Proces tworzenia programu|Proces tworzenia programu]] | |||
#[[Programowanie niskopoziomowe / Moduł 3: Programowanie asemblerowe w środowisku systemu operacyjnego|Programowanie asemblerowe w środowisku systemu operacyjnego]] | |||
#[[Programowanie niskopoziomowe / Moduł 4: Programowanie hybrydowe|Programowanie hybrydowe]] | |||
#[[Programowanie niskopoziomowe / Moduł 5: Techniki programowania asemblerowego|Techniki programowania asemblerowego]] | |||
<!-- | |||
#[[Programowanie niskopoziomowe / Moduł 6: Optymalizacja kodu dla procesorów superskalarnych|Optymalizacja kodu dla procesorów superskalarnych]] | |||
--> | |||
#[[Programowanie niskopoziomowe / Moduł 7: Programowanie jednostek wektorowych|Programowanie jednostek wektorowych]] | |||
*[[Programowanie Niskopoziomowe - Ćwiczenia|Ćwiczenia]] |
Aktualna wersja na dzień 12:31, 12 paź 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.
- 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