lab08'08

background image

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI

Architektura komputerów

Zadanie laboratoryjne N 8

Zadanie laboratoryjne N 8

TEMAT:

R

OZKAZY

PRZESUNIĘĆ

II

Celem niniejszego ćwiczenia jest rozszerzenie wiedzy studentów z zakresu jedno argumentowych
rozkazów przesunięć arytmetycznych, logicznych i cyklicznych. Rozkazy te posiadają format rozkazu,
który został przedstawiony na Rys. 1.

W czasie wykonywania obecnego zadania zajmiemy się informacjami zawartymi w drugim bajcie

kodu rozkazu tj. przesunięciem DISP, dzięki któremu możemy zaadresować komórkę pamięci RAM
(adresacja pośrednia). Przesunięcie to interpretuje się jako liczbę ze znakiem, wykorzystując ją do
obliczania adresu efektywnego.

Z powodu segmentowej organizacji pamięci wszystkie adresy efektywne, EA są przesunięciem

(offsetem) względem bazowego adresu segmentu i rozpatrywane są jako liczba bez znaku przy
obliczaniu adresu fizycznego. W przyszłości, aby uniknąć pomyłek przez przesunięcie będziemy
rozumieli offset – przesunięcie w segmencie.

Pole MOD wskazuje w jaki sposób należy interpretować pole R/M aby zidentyfikować argument:

jeżeli MOD=11, to argument znajduje się w rejestrze, w pozostałych przypadkach w pamięci. W
przypadku adresowania komórek pamięci, pole MOD określa wielkość przesunięcia DISP:

MOD = 00,

DISP=0 – brak przesunięcia;

01,

DISP=DISP L – rozkaz zawiera 8 bitowe przesunięcie, które rozszerza się ze

znakiem do 16 bitów;
10,

DISP=DISP H, DISP L – rozkaz zawiera 16 bitowe przesunięcie.

Przy MOD=11 realizowana jest pośrednia adresacja komórek pamięci i pole R/M

wykorzystywane jest do formułowania adresu efektywnego EA do argumentu. W Tabeli 2
przedstawiono sposób tworzenia EA, gdzie D8 lub D16 oznacza przesunięcie, zadane w kodzie
rozkazu (w postaci liczby w kodzie uzupełnień do 2, zapisane przy użyciu formy litle endian).

Od przedstawionych w Tabeli 2 zasad istnieje wyjątek, pozwalający realizować bezpośrednią

(absolutną) adresację: jeśli MOD=00 i R/M=110, to EA=DISP H, DISP L.

Tabela 1:

Operacja

Kod

operacji

Uzupełnienie

kodu operacji

ROL R/M, 1 1101 000W

000

ROR R/M, 1 1101 000W

001

RCL R/M, 1 1101 000W

010

RCR R/M, 1 1101 000W

011

1 z 3

Rysunek 1: Format rozkazu jednoargumentowego dla zadania 8.

15

8 7

5

3 2

0

6

4

1

13

11 10

14

12

9

Kod operacji

MOD

W

15

8 7

5

3 2

0

6

4

1

13

11 10

14

12

9

DISP8

DISP8

R/M

Kod op.

background image

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI

Architektura komputerów

Zadanie laboratoryjne N 8

Tabela 2:

Pole
R/M

00

Pole

01

MOD

10

1

W=0

1

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 D16

BP+D8

BP+D16

DH

SI

111 BX

BX+D8

BX+D16

BH

DI

Kod rozkazu i pomocniczy kod rozkazu znajdują się w Tabeli 2, poprzedniego zadania

laboratoryjnego i Tabeli 1 niniejszego przygotowania, natomiast oznaczenia pól MOD i R/M można
znaleźć w Tabeli 2 niniejszego przygotowania.

Tabela 3:

Nr st.

Operacje

1 i 6 SAL byte ptr [SI], 1; RCR Arg1, 1

2 i 7 ROL word ptr [BX+DISP8], 1; SAR Arg2, 1

3 i 8 ROR Arg2; SHL word ptr [BX+DISP8], 1

4 i 9 RCL byte ptr [SI+DISP8], 1; SHR Arg1, 1

5 i 10 SAR Arg1,1; ROL byte ptr [DI], 1

byte ptr – określa wielkość operandu jako bajt; word ptr – określa wielkość
operandu jako słowo; DISP8 – przesuniecie wielkości 8 bitów; Arg1 – 16
bitowe zmienne zapisane w pamięci RAM; Arg2 – 8 bitowe zmienne
zapisane w pamięci RAM

W przypadku gdy w rozkazie pojawia się Arg1 lub Arg2, mamy do czynienia z adresacją

bezpośrednią czyli MOD=00 i R/M=110, gdzie DISP (16 bitów drugiego słowa rozkazu) wskazuje
bezpośrednio wartość przesunięcia w segmencie danych, wskazującą na argument.

Zagadnienia do opracowania przed przystąpieniem do wykonywania zadania:

1. Jaka jest zasada tworzenia adresu efektywnego w przypadku odwołań do danych?
2. Na czym polega adresacja pośrednia?
3. Zapisz dla swojego wariantu kody rozkazów zawartych w Tabeli 1 w postaci binarnej oraz

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

4. Zapoznać się z zasadą działania następujących rozkazów procesora 8086:

-

RCL,

-

RCR,

-

ROL,

-

ROR.

Zadania podstawowe do wykonywania w czasie trwania zajęć laboratoryjnych:

P_1. Utwórz w pamięci RAM zmienne Arg1 i Arg2, podając je w big endian.
P_2. Rozbuduj program podstawowy z 2 zajęć laboratoryjnych o rozkazy zawarte w Tabeli 3.

2 z 3

background image

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI

Architektura komputerów

Zadanie laboratoryjne N 8

Zadania dodatkowe wykonywania w czasie trwania zajęć laboratoryjnych:

D_1. Weź program z poprzednich zajęć i ustaw jako komentarz dekodowanie wszystkich

rozkazów poza NOP, następnie usuń (lub ustaw jako komentarz) fragment (lub fragmenty)
programu z obszaru w którym są wykonywane te rozkazy.

P_3. Utwórz w pamięci RAM zmienne Arg1 i Arg2, podając je w big endian.
D_2. Rozbuduj tak powstały program, tak aby wykonywały się następujące rozkazy:

SAR R/M,1;

SAL R/M,1;

SHL R/M,1;

SHR R/M,1;

dla dowolnej wartości R/M dla MOD = 00, zarówno dla argumentu wielości słowa jak i
wielkości bajtu.

D_3. W czasie dekodowania rozkazu sprawdź tylko kod operacji.
D_4. Zadbaj o to by napisany program zajmował jak najmniej komórek pamięci mikro

rozkazów.

3 z 3


Document Outline


Wyszukiwarka

Podobne podstrony:
FP w 08
08 Elektrownie jądrowe obiegi
archkomp 08
02a URAZY CZASZKOWO MÓZGOWE OGÓLNIE 2008 11 08
ankieta 07 08
08 Kości cz Iid 7262 ppt
08 Stany nieustalone w obwodach RLCid 7512 ppt
2009 04 08 POZ 06id 26791 ppt
08 BIOCHEMIA mechanizmy adaptac mikroor ANG 2id 7389 ppt
depresja 08 09
W15 08 II
Szkol Ogólne 08 1pomoc
08 NIEDZIELA ZWYKŁA B
08 md wykl8
WM1 08 Rozkład naprężeń
Białka 08 06 05

więcej podobnych podstron