POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI
Architektura komputerów
Zadanie laboratoryjne N 2
Zadanie laboratoryjne N 2
TEMAT: C
YKL
P
RZETWARZANIA
R
OZKAZU
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.
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,
-
CX,
-
DX,
-
BX,
-
SP,
-
BP,
-
SI,
-
DI,
-
CS,
-
SS,
-
DS,
-
ES,
-
licznik rozkazów,
-
rejestr rozkazów.
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,
-
CJP,
-
MACRO,
-
CRTN,
-
LOOP,
-
PUSH,
-
RFCT,
-
RPCT,
-
LDCT,
-
OEY,
-
EWH,
-
EWL,
-
R,
-
DW.
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
Rysunek 1.: Format rozkazu NOP.
15
8 7
5
3 2
0
6
4
1
13
11 10
14
12
9
Kod operacji
X
X
X
X
X
X
X
X
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:
Nr st.
CS
Licznik
rozkazów
Nr st.
CS
Licznik
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