POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI Architektura komputerów

Zadanie laboratoryjne N 10

Zadanie laboratoryjne N 10

TEMAT: ROZKAZY DWUARGUMENTOWE – 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 5. Jak wiadomo pole kodu operacji jest indywidualne dla poszczególnych operacji (Tabela 1), pole D jest polem charakterystycznym dla rozkazów dwuargumentowych, 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.

15

9 8 7 6 5

3 2

0

15

8 7

0

Kod operacji

D W MOD

REG

R/M

DISP8 L

DISP8 H

Rysunek 1: Rozkaz dwuargumentowy Tabela 1:

Rozkaz Kod operacji

ADD 0000 00DW

OR

0000 10DW

ADC 0001 00DW

SBB

0001 10DW

AND 0010 00DW

SUB

0010 10DW

XOR 0011 00DW

CMP 0011 10DW

MOV 1000 10DW

TEST 1000 010W

XCHG 1000 011W

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

 1. Typy adresacji:

-

bezpośrednia,

-

bazowa,

-

pośrednia,

-

indeksowa,

-

rejestrowa,

-

bazowo-indeksowa.

-

pośrednia rejestrowa,

 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.

1 z 3

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI Architektura komputerów

Zadanie laboratoryjne N 10

Zadania podstawowe do wykonywania w czasie trwania ćwiczeń laboratoryjnych: P_1.Rozbuduj program z poprzedniego ćwiczenia laboratoryjnego zgodnie z Tabelą 2

i Tabelą 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

TEST AL, [BX+SI+D16]

XCHG AH, AL

1 i 9 CMP [SI+D16], BX

MOV [BP+SI+D16], SP

TEST BX, [BX+SI+D16]

XCHG CH, BL

2

CMP CX, [DI+D16]

MOV [BP+SI+D16], DH

TEST CX, [BX+DI+D16]

XCHG AL, DL

3 i 10 CMP [BP+D16], AL

MOV [BP+DI+D16], SI

TEST DL, [BX+DI+D16]

XCHG BL, CH

4

CMP [BX+D16], AX

MOV [BP+DI+D16], SP

TEST SP, [BP+SI+D16]

XCHG AH, DH

5

CMP CX, [SI+D16]

MOV [BX+SI+D16], AL

TEST BH, [BP+SI+D16]

XCHG CH, DH

6

CMP [DI+D16], AX

MOV [BX+SI+D16], BP

TEST CH, [BP+DI+D16]

XCHG DH, DL

7

CMP AX, [BP+D16]

MOV [BX+DI+D16], DX

TEST DX, [BP+DI+D16]

XCHG DL, BH

8

CMP CH,[BX+D16]

MOV [BX+DI+D16], SI

Tabela 3:

REG,

REG,

W=0 W=1

W=0 W=1

R/M

R/M

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,

3. MOV,

5. OR,

2. TEST,

4. AND,

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.

2 z 3

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI Architektura komputerów

Zadanie laboratoryjne N 10

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'; 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

  • Zagadnienia do opracowania przed przystąpieniem do wykonywania ćwiczenia:
  • Zadania podstawowe do wykonywania w czasie trwania ćwiczeń laboratoryjnych:
  • Zadania dodatkowe wykonywania w czasie trwania ćwiczeń laboratoryjnych: