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

Document Outline

  • Zadania dodatkowe do wykonania w czasie trwania zajęć laboratoryjnych: