J zyki asemblerowe ę

Transkrypt

J zyki asemblerowe ę
Języki asemblerowe
Prowadzący: dr inż. Eugeniusz J. Wróbel ([email protected])
Rozkład:
Semestr
5
6
W
2
-
Ćw.
-
Lab.
1
2
Proj.
-
Sem.
-
Egz
ECTS
+
Cel:
Celem przedmiotu jest zapoznanie studenta z podstawową wiedzą i umiejętnościami w zakresie
programowania w języku asemblera. Znajomość tych zagadnień pozwoli studentowi w bardziej
optymalny sposób dobierać narzędzia programistyczne do rozwiązywania konkretnych zadań.
Umożliwi lepsze zrozumienie działania procesora oraz bardziej świadome korzystanie z języków
wyższego poziomu.
Opis:
Wprowadzenie. Architektura rodziny procesorów firmy Intel widziana oczami programisty. Lista
rozkazów rodziny procesorów Intela 80x86. Koprocesor arytmetyczny, technologia MMX i SIMD.
Przykłady zastosowań rozkazów. Ogólna charakterystyka języka makroasemblera. Dyrektywy i
pseudoinstrukcje. Symbole, wyrażenia i operatory. Narzędzia. Wybrane techniki programowania.
łączenie modułów asemblerowych z programem w języku wyższego poziomu. Optymalizacja kodu
programu. Przykłady.
Słowa kluczowe:
Asembler, makroasembler, MASM, język symboliczny, język asemblerowy, programowanie
Wykład:
1. Wprowadzenie: Miejsce języka symbolicznego w dzisiejszej informatyce.
2. Architektura rodziny procesorów firmy Intel widziana oczami programisty: rejestry, znaczniki,
organizacja pamięci operacyjnej, adres logiczny i fizyczny, tryby adresowania, praca procesora
w różnych trybach, adresowanie układów we/wy, przerwania i „wyjątki”, typy danych.
3. Lista rozkazów rodziny procesorów Intela 80x86: formaty rozkazów, podstawowe rozkazy
procesora, rozkazy sterujące.
4. Koprocesor arytmetyczny, technologia MMX i SIMD: arytmetyka zmiennoprzecinkowa
(odwołanie do wcześniejszych wykładów), rejestry koprocesora, rozszerzenia MMX i SIMD,
rozkazy koprocesora oraz wykorzystujące technologię MMX i SIMD.
5. Przykłady zastosowań rozkazów.
6. Ogólna charakterystyka języka makroasemblera: Podstawowe elementy języka, stałe, nazwy
symboliczne, składnia wiersza programu, słowa kluczowe, dyrektywy i pseudoinstrukcje.
7. 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.
8. Symbole, wyrażenia i operatory: symbole predefiniowane, wyrażenia, operatory.
9. Narzędzia: program asemblera, narzędzia pomocnicze.
10. Wybrane techniki programowania.
11. Łączenie modułów asemblerowych z programem w języku wyższego poziomu.
12. Optymalizacja kodu programu: kryteria optymalizacji, zasady ogólne, czas wykonania
a zajętość pamięci, optymalizacja dla rodziny procesorów Intela P5 i P6 oraz wcześniejszych.
13. Przykłady.
Zajęcia laboratoryjne:
•
Ogólna charakterystyka – cel
Praktyczne zapoznanie się z narzędziami do programowania w języku asemblera procesorów 80x86
oraz uruchomienie prostych przykładów pod systemem operacyjnym MS DOS oraz Windows.
Przygotowanie do zajęć projektowych z tego przedmiotu w kolejnych semestrze.
•
Wykaz ćwiczeń
1.
2.
3.
4.
5.
•
Instalacja środowiska PWB pod systemem operacyjnym MS DOS. Asemblacja pierwszego
zadanego przez prowadzącego prostego programu.
Praca z debuggerem. Uruchamianie prostego programu ilustrującego sposoby adresacji
argumentów.
Segmentowe modele pamięci. Modyfikacje prostego programu umożliwiające śledzenie
rozmieszczenia segmentów i zawartości rejestrów segmentowych.
Instalacja środowiska MASM32 oraz debbugera po systemem Windows. Asemblacja
prostego programu.
Uruchomienie programu asemblerowego pod systemem operacyjnym Windows wg
algorytmu podanego przez prowadzącego.
Kierownik, zespół prowadzący
dr inż. Eugeniusz Wróbel – kierownik laboratorium Języków Asemblerowych
mgr inż. Grzegorz Baron
mgr inż. Oleg Antemijczuk
mgr inż. Jarosław Paduch
mgr inż. Krzysztof Tokarz
mgr inż. Bartłomiej Szady
mgr inż. Tomasz Podeszwa
mgr inż. Gabriel Drabik
mgr inż. Adam Opara
•
Materiały dydaktyczne do ćwiczeń (podręczniki, skrypty, instrukcje, materiały w postaci
elektronicznej, programy wspomagające nauczanie, katalogi, noty aplikacyjne)
1. Książka „Asembler. Ćwiczenia praktyczne” Wydawnictwo Helion 2003, praca zbiorowa
pod rekakcją Eugeniusza Wróbel
2. Książka „Asembler 8086/88” WNT 1990, seria Mikrokomputery, autor Eugeniusz Wróbel
3. Książka „Asembler. Praktyczny kurs” Wydanictwo Helion 2004 (ukaże się w kwietniu),
autor Eugeniusz Wróbel
4. Prezentacja elektroniczna obejmująca wykład z przedmiotu Języki Asemblerowe”
udostępniona na stronach www Zakładu
•
Regulamin
•
Zasady zaliczania
1.Wykonanie wszystkich ćwiczeń wynikających z harmonogramu.
2.Uzyskanie pozytywnej oceny ze sprawozdania z wykonanego ćwiczenia.
3.Wykazanie się przygotowaniem do wykonania ćwiczenia
4.Zaliczenie kolokwium
Uwagi dotyczące sprawozdania z ćwiczenia:
Sprawozdanie z wykonanego ćwiczenia przedstawia do oceny każdy student.
Prowadzący może wyrazić zgodę na jedno sprawozdanie na podsekcję (2 osoby).
Warunki zaliczenia i egzamin:
V semestr: Zaliczenie ćwiczeń tablicowych - kartkówka.
Egzamin pisemny zawiera następujące elementy: analiza fragmentu programu, projekt i
zakodowanie krótkiej procedury, pytania problemowe oraz test.
VI semetr: Zaliczenie zajęć laboratoryjnych poprzez sporządzenie i obronienie sprawozdań z
wykonanych ćwiczeń zgodnie z wytycznymi prowadzącego.
Metody nauczania:
Wykład uzupełniany slajdami (foliami), niektóre materiały kserowane. W laboratorium nie więcej
niż 2 osoby przy jednym stanowisku.
Materiały dydaktyczne:
Powielane materiały dydaktyczne, materiały w formie elektronicznej.
Literatura podstawowa:
• E.J. róbel Asembler 8086/88. Seria "Mikrokomputery", WNT Warszawa 1992, wyd.II.
• Intel Architecture, Software Developer’s Manual (1999) Volume 1: Basic Architecture; Volume
2: Instruction Set Reference; Volume 3:System programming.
• Sivarama P.. Dandamudi Introduction to Assembly Language Programming, Springer Verlag
1998
• E.J.Wróbel Programowanie w asemblerze, cz.1 Podstawy programowania w asemblerze dla
procesora Pentium, w przygotowaniu
• Oleg Antemijczuk, Krzysztof Cyran, Jarosław Paduch, Tomasz Podeszwa, Eugeniusz Wróbel:
Programowanie w asemblerze, cz.2 Wybrane techniki programowania w asemblerze dla
procesora Pentium, w przygotowaniu.
Literatura uzupełniająca:
• H.Małysiak, B.Pochopień, E.Wróbel Procesory arytmetyczne.Seria "Mikrokomputery". WNT
Warszawa, 1993.
• H.Małysiak, B.Pochopień, E.Wróbel Mikrokomputery klasy IBM PC. Seria "Mikrokomputery",
WNT Warszawa, 1992, wyd.II.
• Microsoft Macro Assembler Programmer’s Guide (1998 lub nowszy).
• Karen Miller An Assembly Language Introduction to Computer Architecture, Oxford University
Press 1999