Programowanie niskopoziomowe: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Diks (dyskusja | edycje)
Robert m (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
=Autor sylabusa=
==Autor sylabusa==


mgr inż. Grzegorz Mazur
mgr inż. Grzegorz Mazur
Linia 5: Linia 5:
g.mazur@ii.pw.edu.pl
g.mazur@ii.pw.edu.pl


=Nazwa zajęć=
==Nazwa zajęć==


'''Programowanie niskopoziomowe'''
'''Programowanie niskopoziomowe'''


=Forma zajęć=
==Forma zajęć==


wykład (15h) + laboratorium (15h)
wykład (15h) + laboratorium (15h)


=Opis=
==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. Wykład jest silnie skorelowany z przedmiotem Architektura Komputerów.
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.


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


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


=Sylabus=
==Sylabus==


*Wprowadzenie - zastosowanie programowania asemblerowego i hybrydowego, środowisko pracy programu w systemie operacyjnym i bez niego.
*Wprowadzenie - zastosowanie programowania asemblerowego i hybrydowego, środowisko pracy programu w systemie operacyjnym i bez niego.
Linia 33: Linia 33:
*Wprowadzenie do programowania jednostek wektorowych.
*Wprowadzenie do programowania jednostek wektorowych.


=Literatura=
==Literatura==


*J. Biernat. ''Arytmetyka komputerów''. PWN, 1996.
*J. Biernat. ''Arytmetyka komputerów''. PWN, 1996.
*Materiały firmowe - dokumenty techniczne dostępne w sieci www - MIPS, Intel, AMD.
*Materiały firmowe - dokumenty techniczne dostępne w sieci www - MIPS, Intel, AMD.
*Specyfikacje ''Application Binary Interface''.
*Specyfikacje ''Application Binary Interface''.

Wersja z 09:54, 21 cze 2006

Autor sylabusa

mgr inż. Grzegorz Mazur

g.mazur@ii.pw.edu.pl

Nazwa zajęć

Programowanie niskopoziomowe

Forma zajęć

wykład (15h) + laboratorium (15h)

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. Wykład jest silnie skorelowany z przedmiotem Architektura Komputerów.

Wymagania wstępne

Programowanie w języku C

Architektura komputerów (może być równolegle)

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.
  • 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.