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)