Jezyki Assemblerowe

Transkrypt

Jezyki Assemblerowe
Data:
16.04.2008r.
Wydanie: I
Załącznik
Symbol:
Z-5.4-1-1
Strona:
1/1
Status:
obowiązujący
KARTA PRZEDMIOTU
KARTA PRZEDMIOTU
Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: …………
Nazwa przedmiotu:
JĘZYKI
ASEMBLEROWE
Kierunek:
INFORMATYKA
Specjalność:
wszystkie
Tryb studiów:
stacjonarne pierwszego stopnia
Rodzaj przedmiotu:
Instytut/ Katedra:
Semestr:
Prowadzący przedmiot:
Prowadzący zajęcia:
kierunkowy
Instytut Informatyki
IV i V
Dr inŜ. Eugeniusz Wróbel
Liczba godzin
Kod/nr
Wykład:
Dr inŜ. Eugeniusz Wróbel
Wykład:
Ćwiczenia:
- nie dotyczy -
Ćwiczenia: -
Laboratorium:
1.
2.
3.
4.
5.
6.
Antemijczuk Oleg
Czekalski Piotr
Opara Adam
Paduch Jarosław
Szady Bartłomiej
Wróbel Eugeniusz
Liczba pkt ECTS
4
30 godzin w sem. IV
Laboratorium: 15 godzin w sem. IV
Projekt: 30 godzin w sem. V
Seminarium: -
Projekt:
1.
2.
3.
4.
5.
6.
7.
8.
Antemijczuk Oleg
Baron Grzegorz
Czekalski Piotr
Nowak Adrian
Opara Adam
Paduch Jarosław
Szady Bartłomiej
Wróbel Eugeniusz
Seminarium: - nie dotyczy Powiązanie ze standardami i cel kształcenia
Celem przedmiotu jest zapoznanie studenta z podstawową wiedzą i umiejętnościami w
zakresie programowania w języku asemblera oraz architekturą procesorów x86-32
widzianą oczami programisty. Znajomość tych zagadnień ułatwi studentowi dokonywanie
wyboru narzędzi programistycznych do rozwiązywania konkretnych zadań, zwłaszcza
tych, które wymagają optymalizacji czasowej lub pamięciowej. UmoŜliwi lepsze
zrozumienie działania procesora i komputera oraz bardziej świadome korzystanie z
języków wyŜszego poziomu.
Załącznik
Data:
16.04.2008r.
Wydanie: I
Status:
obowiązujący
Symbol:
Z-5.4-1-1
Strona:
2/1
KARTA PRZEDMIOTU
Przedmioty wprowadzające oraz wymagania wstępne
Teoria Układów cyfrowych, Arytmetyka systemów cyfrowych, Podstawy programowania
komputerów, Konstrukcja układów cyfrowych
Treść wykładów:
•
Wprowadzenie. Miejsce języka symbolicznego (asemblera) we współczesnej
informatyce oraz w hierarchii języków programowania. Mity i fakty na temat
asemblera. MASM, TASM, NASM.
•
Architektura mikroprocesorów rodziny x86-32 widziana oczami programisty. Od
procesora 8086 do Core i7. Rejestry, znaczniki, organizacja pamięci operacyjnej,
adres logiczny fizyczny, liniowy, tryby adresowania, praca procesora w róŜnych
trybach, adresowanie układów we/wy, przerwania i "wyjątki", typy danych.
•
Ogólna charakterystyka listy rozkazów rodziny procesorów Intela x86-32. Formaty
rozkazów, podstawowe rozkazy procesora, rozkazy sterujące.
•
Koprocesor
arytmetyczny,
technologia
MMX
i
SSE. Arytmetyka
zmiennoprzecinkowa , rozszerzenia MMX, SSE, SSE2, SSE3, SSSE3, SSE4,
AVX. (Rozszerzenia procesorów firmy AMD).
•
Ogólna charakterystyka języka makroasemblera. Podstawowe elementy języka,
stałe, nazwy symboliczne, składnia wiersza programu, słowa kluczowe, dyrektywy
i pseudoinstrukcje.
•
Wybrane dyrektywy i pseudoinstrukcje. Tworzenie segmentów logicznych,
asemblacja warunkowa, makroinstrukcje, przydział danych, połączenia
międzymodułowe, struktury danych i rekordy, łańcuchy, bloki powtarzane,
sterowanie postacią listingu, procedury, błędy warunkowe, inne.
•
Symbole, wyraŜenia i operatory, symbole predefiniowane.
•
Narzędzia. Program asemblera, narzędzia pomocnicze.
•
MASM w wersji dla systemu operacyjnego MS DOS oraz Windows.
•
Łączenie modułów asemblerowych z programem w języku wyŜszego poziomu.
•
Optymalizacja kodu programu. Kryteria optymalizacji, zasady ogólne, czas
wykonania a zajętość pamięci, Optymalizacja dla rodziny procesorów Intela.
•
Przykłady (wplecione przy okazji róŜnych omawianych tematów szczegółowych)
Data:
16.04.2008r.
Wydanie: I
Załącznik
Status:
obowiązujący
Symbol:
Z-5.4-1-1
Strona:
3/1
KARTA PRZEDMIOTU
Treść/Tematy: Ćw./L./P./Sem.
Laboratorium:
1. Prosty program asemblerowy w środowisku MSDOS (Skrypt [1] ćw.1)
2. Program uruchomieniowy. Przykłady uŜycia rozkazów procesora (Skrypt [1] ćw. 2
i 3)
3. Prosty program asemblerowy w środowisku Windows (Skrypt [1] ćw. 4)
4. Struktura programu z jednym oknem głównym (Skrypt [1] ćw. 5)
5. Program asemblerowy w Visual Studio 2008, łączenie modułów w języku
asemblerowym z programem w języku C.
Projekt:
Indywidualny kompletny projekt w języku asemblerowym przygotowany w Visual Studio
2008 (z wykorzystaniem mechanizmu łączenia modułów w asemblerze oraz C oraz
technik bibliotek typu dll) lub w MASM32.
Metody dydaktyczne
Wykład ilustrowany prezentacja multimedialną, slajdy z wykładów udostępnione na
stronie internetowej przedmiotu. W laboratorium 1-2 osoby przy jednym stanowisku.
Projekt realizowany indywidualnie przez kaŜdego studenta. Obrona projektów w formie
prezentacji multimedialnej.
Forma egzaminu/zaliczenia przedmiotu
1. Wykład — egzamin pisemny
2. Laboratorium – indywidualne
kolokwium na koniec semestru
sprawozdania
z
poszczególnych
ćwiczeń,
3. Projekt – obrona projektu (prezentacja programu, pełna dokumentacja programu)
Minimalne wymagania do egzaminu /zaliczenia
Egzamin pisemny 4-częściowy:
a) Test wielokrotnego wyboru (zagadnienia teoretyczne z zakresu języka
asemblera oraz listy rozkazów procesora)
b) Analiza fragmentu programu
c) Synteza niewielkiej procedury według zadanego algorytmu
d) Cztery pytania problemowe wymagające pisemnej odpowiedzi opisowej
Data:
16.04.2008r.
Wydanie: I
Załącznik
Symbol:
Z-5.4-1-1
Strona:
Status:
obowiązujący
4/1
KARTA PRZEDMIOTU
Literatura (podstawowa i specjalistyczna)
1. Wróbel Eugeniusz „Programowanie w języku asemblera MASM. Laboratorium”,
Wydawnictwo Politechniki Śląskiej, Gliwice 2005
2. Wróbel Eugeniusz „Asembler. Praktyczny kurs”, Wydawnictwo Helion, Gliwice
2004.
3. Wróbel Eugeniusz (pod red.) „Asembler. Ćwiczenia praktyczne”, Wydawnictwo
Helion, Gliwice 2002.
4. Vlad Pirogov „Asembler. Podręcznik programisty”, Wydawnictwo Helion, Gliwice
2005
5. Microsoft Macro Assembler Programmer’s Guide (obecnie dostępne w internecie)
6.
IA-32 Intel Architecture. Software Developer’s Manual (dostępne na
www.intel.com):
a)
Volume 1: Basic Architecture
b)
Volume 2: Instruction Set Reference
c) Volume 3: System Programming Guide
Literatura uzupełniająca
1.
Sivarama P. Dandamudi: “Introduction to Assembly Language Programming”, Springer Verlag
1998.
2.
Karen Miller “An Assembly Language Introduction to Computer Architecture”, Oxford University
Press 1999
3.
Eugeniusz J. Wróbel: „Asembler 8086/88”, Seria "Mikrokomputery", WNT Warszawa 1992,
wyd.II.
4.
H. Małysiak, B. Pochopień, E. Wróbel „Procesory arytmetyczne”, Seria "Mikrokomputery". WNT
Warszawa, 1993.
5.
H. Małysiak, B. Pochopień, E. Wróbel „Mikrokomputery klasy IBM PC”, Seria „Mikrokomputery",
WNT Warszawa, 1992, wyd.II.
Zatwierdzono:
15.02.2010
…………………………….
…………………………………………………
(data i podpis prowadzącego)
(data i podpis Dyrektora Instytutu/Kierownika Katedry)