background image

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI

Architektura komputerów

Zadanie laboratoryjne N 10

Zadanie laboratoryjne N 10

TEMAT: 

R

OZKAZY

 

DWU

 

ARGUMENTOWE

 – 

FORMAT

 

ROZKAZU

 

Z

 

POST

 

BAJTEM

Celem   niniejszych   zajęć   laboratoryjnych   jest   zapoznanie   się   studentów   z   formatem   rozkazu 

zawierającym tzw. post bajt, który umożliwia w prosty sposób korzystanie z adresacji bezpośredniej i 
pośredniej,  adresacji  rejestrowej,  pośredniej  rejestrowej,  adresacji   bazowej,  indeksowej  i  adresacji 
bazowo-indeksowej. W niniejszym ćwiczeniu zajmiemy się tylko kilkoma z wymienionych tu typów 
adresacji. 

Post bajt jest drugim bajtem rozkazu o zdefiniowanej strukturze, format którego przedstawiono na 

Rysunku 1 a oznaczenia poszczególnych pól, poza polem kodu operacji i polem kierunku (D), zawarte 
są   w   Tabeli   6   przygotowania   do   6   zajęć   laboratoryjnych.   Jak   wiadomo   pole   kodu   operacji   jest 
indywidualne   dla   poszczególnych   operacji   (Tabela   1),   pole   D  jest   polem   charakterystycznym   dla 
rozkazów dwu argumentowych, jeśli D=1 oznacza to, że argument lub wynik operacji przesyłany jest 
do rejestru określonego polem REG; przy D=0 – wartości przesyłane są ze wskazanego rejestru. 

Tabela 1: 

Operacja Kod operacji Operacja Kod operacji Operacja Kod operacji

ADD

0000 00DW AND

0010 00DW TEST

1000 010W

OR

0000 10DW SUB

0010 10DW XCHG 

1000 011W

ADC

0001 00DW XOR

0011 00DW MOV

1000 10DW

SBB

0001 10DW CMP

0011 10DW

 

Zagadnienia do opracowania przed przystąpieniem do wykonywania ćwiczenia:

1. Typy adresacji:

-

bezpośrednia,

-

pośrednia,

-

rejestrowa,

-

pośrednia rejestrowa,

-

bazowa,

-

indeksowa,

-

bazowo-indeksowa.

2. Zapisz dla swojego wariantu kody rozkazów zawartych w Tabeli 1, Tabeli 2 i  3 w postaci 

binarnej (z zaznaczeniem poszczególnych pól) oraz w postaci szesnastkowej.

Zadania podstawowe do wykonywania w czasie trwania ćwiczeń laboratoryjnych:

P_1. Rozbuduj program  z poprzedniego ćwiczenia laboratoryjnego zgodnie z Tabelą 2 i 5.
P_2. Wartości D16 i argumenty w pamięci RAM zapisz w postaci Big endian.
P_3. Uwzględnij Tabelę 4.

Tabela 2: 

Nr st.

Operacje

1 i 9

TEST AL, [BX+SI+D16]
CMP [SI+D16], BX

XCHG AH, AL
MOV [BP+SI+D16], SP

1 z 3

Rysunek 1: Rozkaz dwu argumentowy

15

8 7

0

DISP8 L

DISP8 H

15

9 8 7

5

3 2

0

Kod operacji

W

R/M

REG 

MOD

6

D

background image

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI

Architektura komputerów

Zadanie laboratoryjne N 10

Nr st.

Operacje

2

TEST BX, [BX+SI+D16]
CMP CX, [DI+D16]

XCHG CH, BL
MOV [BP+SI+D16], DH

3 i 10

TEST CX, [BX+DI+D16]
CMP [BP+D16], AL

XCHG AL, DL
MOV [BP+DI+D16], SI

4

TEST DL, [BX+DI+D16]
CMP [BX+D16], AX

XCHG BL, CH
MOV [BP+DI+D16], SP

5

TEST SP, [BP+SI+D16]
CMP CX, [SI+D16]

XCHG AH, DH
MOV [BX+SI+D16], AL

6

TEST BH, [BP+SI+D16]
CMP [DI+D16], AX

XCHG CH, DH
MOV [BX+SI+D16], BP

7

TEST CH, [BP+DI+D16]
CMP AX, [BP+D16]

XCHG DH, DL
MOV [BX+DI+D16], DX

8

TEST DX, [BP+DI+D16]
CMP CH,[BX+D16]

XCHG DL, BH
MOV [BX+DI+D16], SI

Tabela 3: 

REG,

R/M 

W=0  W=1 REG,

R/M 

W=0  W=1

000

AL

AX

100

AH

SP

001

CL

CX

101

CH

BP

010

DL

DX

110 

DH

SI

011 

BL

BX

111

BH

DI

Zadania dodatkowe wykonywania w czasie trwania ćwiczeń laboratoryjnych:

D_1. Dodaj kolejne rozkazy do już obsługiwanych przez program, tak aby  wykonywały się 

dowolne z rozkazów:

1. CMP,
2. TEST,

3. MOV,
4. AND,

5. OR,
6. XOR.

Dla dowolnej wartości W i D, dla MOD = 10 i R/M zawartego w przedziale 000 – 011.

D_2. Wartości D16 zapisz w postaci Big endian.
D_3. Argumenty w pamięci RAM zapisz w postaci Little endian.
D_4. Uwzględnij Tabelę 4.
D_5. Zadbaj   o   to   by   napisany   program   zajmował   jak   najmniej   komórek   pamięci   mikro 

rozkazów.

Tabela 4: 

Operacja

Rozkazy

OF  CF SF ZF

Dodawanie,  ADD ADC SUB SBB

+

+

+

+

odejmowanie CMP NEG CMPS SCAS

+

+

+

+

INC DEC

+

-

+

+

Logiczne

AND OR XOR TEST

0

0

+

+

Oznaczenia:   '+'   –   wynik   operacji   wpływa   na   flagę;   '-'   –   nie  
wpływa; 1 –  ustawia w stan '1'; 0 –  ustawia w stan '0';

2 z 3

background image

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI

Architektura komputerów

Zadanie laboratoryjne N 10

Tabela 5: 

Pole

Pole 

MOD

R/M

00

01

10

1 1

W=0 W=1

000  BX+SI  BX+SI+D8  BX+SI+D16  AL

AX

001  BX+DI  BX+DI+D8  BX+DI+D16 CL

CX

010

BP+SI

 BP+SI+D8 BP+SI+D16

DL

DX

011  BP+DI  BP+DI+D8  BP+DI+D16 BL

BX

100

SI

SI+D8

SI+D16

AH

SP

101

DI

DI+D8

DI+D16

CH

BP

110

DATA

BP+D8

 BP+D16 

DH

SI

111

BX

BX+D8

BX+D16

BH

DI

D8   i   D16   oznaczają   odpowiednio   –   przesunięcie   wielkości   8   bitów   i  
przesunięcie wielkości 16 bitów.

3 z 3


Document Outline