Programowanie niskopoziomowe: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Diks (dyskusja | edycje)
Akokno (dyskusja | edycje)
 
(Nie pokazano 22 wersji utworzonych przez 5 użytkowników)
Linia 1: Linia 1:
=Autor sylabusa=
== Forma zajęć ==


mgr inż. Grzegorz Mazur
wykład (15 godzin) + laboratorium (15 godzin)


g.mazur@ii.pw.edu.pl
== Opis ==


=Nazwa zajęć=
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.


'''Programowanie niskopoziomowe'''
== Sylabus ==


=Typ zajęć=
=== Autor ===


wykład (15h) + laboratorium (15h)
*Grzegorz Mazur — Politechnika Warszawska


=Opis=
=== Wymagania wstępne ===


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. Wykład jest silnie skorelowany z przedmiotem Architektura Komputerów.
*Programowanie w języku C
*Architektura komputerów (może być równolegle)


=Wymagania wstępne=
=== Zawartość ===


Programowanie w języku C
*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.
Architektura komputerów (może być równolegle)
*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.
=Sylabus=
 
*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.
*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''
 


*J. Biernat. ''Arytmetyka komputerów''. PWN, 1996.
==Moduły==
*Materiały firmowe - dokumenty techniczne dostępne w sieci www - MIPS, Intel, AMD.
*[[Programowanie Niskopoziomowe - Wprowadzenie|Wprowadzenie]]
*Specyfikacje ''Application Binary Interface''.
#[[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


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