POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI Architektura komputerów
Zadanie laboratoryjne N 2
Zadanie laboratoryjne N 2
TEMAT: CYKL PRZETWARZANIA ROZKAZU
Celem niniejszego zadania jest zapoznanie się studentów z cyklem przetwarzania rozkazów, pamięcią RAM i dostępem do niej. W tym celu utworzymy rozkaz zwiększający zawartość licznika rozkazów, tzw. NOP (No Operation). Format tego rozkazu przedstawiono na Rys. 1.
Dla potrzeb tworzonego przez nas systemu mikroprocesorowego przyjmiemy następujące założenia: rejestry ogólnego przeznaczenia tj. AX, CX, DX i BX będą znajdowały się odpowiednio w rejestrach R0, R1, R2 i R3, rejestry indeksowe SP, BP, SI i DI natomiast w rejestrach odpowiednio R4, R5, R6 i R7. Rejestry segmentowe zostaną przypisane do następujących rejestrów CS – R8, SS – R9 i DS – R10, licznik rozkazów umieścimy w rejestrze R15, a rejestr rozkazów w R14. Pozostałymi trzema rejestrami tj. R11, R12 i R13 można dysponować dowolnie. Rejestrem flagowym tworzonego przez nas procesora jest rejestr RN.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Kod operacji
X X X X X X X X
Rysunek 1.: Format rozkazu NOP.
Zagadnienia do opracowania przed przystąpieniem do wykonywania zadania:
1. Sposób tworzenia adresu fizycznego (adresu efektywnego) w procesorze 8086.
2. Cykl przetwarzania rozkazu (odczyt, dekodowanie, wykonanie operacji).
3. Czym są i do czego służą następujące rejestry, w procesorze 8086:
-
AX,
-
SP,
-
CS,
-
licznik rozkazów,
-
CX,
-
BP,
-
SS,
-
rejestr rozkazów.
-
DX,
-
SI,
-
DS,
-
BX,
-
DI,
-
ES,
4. Zapoznaj się ze stroną zatytułowaną „Programowa implementacja wybranych rozkazów przykładowego procesora” z pliku Help Architex'a.
5. Do czego służą następujące mikroinstrukcje i dyrektywy:
-
LINK,
-
LOOP,
-
LDCT,
-
R,
-
CJP,
-
PUSH,
-
OEY,
-
DW.
-
MACRO,
-
RFCT,
-
EWH,
-
CRTN,
-
RPCT,
-
EWL,
Tabela 1:
Nr stanowiska Kod operacji Nr stanowiska Kod operacji
1
0110 1111
6
0110 1010
2
0110 1110
7
0110 1001
3
0110 1101
8
0110 1000
4
0110 1100
9
0110 0111
5
0110 1011
10
0110 0110
Zadania podstawowe do wykonania w czasie trwania zajęć laboratoryjnych: P_1. Stwórz nowy plik z programem, w którym umieść przy pomocy dyrektywy EQU
odpowiednie oznaczenia dla poszczególnych rejestrów.
1 z 2
POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI Architektura komputerów
Zadanie laboratoryjne N 2
P_2. Rozkaz umieść w komórce pamięci RAM o adresie 00010h. Załaduj odpowiednio rejestry CS i licznika rozkazów.
P_3. Wydziel z przestrzeni pamięci mikrorozkazów obszary odpowiadające kolejnym fazom cyklu przetwarzania rozkazu (umieść odpowiednie etykiety).
P_4. Napisz program wykonujący pełen cykl przetwarzania dla rozkazu typu NOP o kodzie rozkazu zawartym w Tabeli 1.
P_5. Stwórz i wykorzystaj przynajmniej 4 różne makra.
Zadania dodatkowe do wykonania w czasie trwania zajęć laboratoryjnych: D_1. Umieść trzy rozkazy NOP w komórkach pamięci RAM zaczynając od adresu podanego w Tabeli 2. Załaduj odpowiednio rejestry CS i licznika rozkazów.
D_2. Zmodyfikuj program tak aby wszystkie trzy rozkazy wykonały się poprawnie.
Tabela 2:
Licznik
Licznik
Nr st.
CS
Nr st.
CS
rozkazów
rozkazów
1
1234h
FFFEh
6
2345h
FFFEh
2
3456h
FFFFh
7
4567h
FFFEh
3
5678h
FFFFh
8
6789h
FFFFh
4
789Ah
FFFEh
9
89ABh
FFFFh
5
9ABCh FFFFh
10
ABCDh FFFEh
2 z 2