Lab08'11


POLITECHNIKA KOSZALICSKA - WYDZIAA ELEKTRONIKI I INFORMATYKI
Architektura komputerów
Zajęcia laboratoryjne N 8
Zajęcia laboratoryjne N 8
TEMAT: ROZKAZY PRZESUNIĆ II
Celem niniejszego ćwiczenia jest rozszerzenie wiedzy studentów z zakresu jednoargumento-
wych rozkazów przesunięć arytmetycznych, logicznych i cyklicznych. Rozkazy te posiadają format
rozkazu, który został przedstawiony na Rys. 1.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DATA8 DATA8
Kod operacji W MOD Kod op. R/M
Rysunek 1.: Format rozkazu jednoargumentowego dla zadania 8.
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 Uzupełnienie
operacji 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
POLITECHNIKA KOSZALICSKA - WYDZIAA ELEKTRONIKI I INFORMATYKI
Architektura komputerów
Zajęcia laboratoryjne N 8
Tabela 2:
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.
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
znalezć 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,
2 z 3
POLITECHNIKA KOSZALICSKA - WYDZIAA ELEKTRONIKI I INFORMATYKI
Architektura komputerów
Zajęcia laboratoryjne N 8
- ROR.
5. Sprawdz zależności pomiędzy rejestrami BP, SI i DI, a odpowiadającymi im rejestrami
segmentowymi.
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. Zakładamy, że SI i DI odnoszą się tylko do rejestru DS.
P_3. Rozbuduj program podstawowy z 2 zajęć laboratoryjnych o rozkazy zawarte w
Tabeli 3.Uwzględnij Tabelę 4.
Tabela 4:
Operacja Rozkazy OF CF SF ZF
Przesunięcia SHL SHR1) + + + +
SHL SHR2) ? + + +
SAR 0 + + +
ROL ROR RCL RCR1) + + - -
ROL ROR RCL RCR2) ? + - -
Oznaczenia: '+'  wynik operacji wpływa na flagę; '-'  nie wpływa; 1  ustawia w stan
'1'; 0  ustawia w stan '0'; X  inwersja; ?  nieustalone 1) jednokrotnie 2) wielokrotnie
Zadania dodatkowe wykonywania w czasie trwania zajęć laboratoryjnych:
D_1. Rozbuduj tak powstały program, tak aby wykonywały się następujące rozkazy:
" ROR R/M,1; " RCL R/M,1;
" ROL R/M,1; " RCR 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. Uwzględnij Tabelę 4.
D_2. W czasie dekodowania rozkazu sprawdz tylko kod operacji.
D_3. Zadbaj o to by napisany program zajmował jak najmniej komórek pamięci mikro
rozkazów.
3 z 3


Wyszukiwarka

Podobne podstrony:
11 (311)
ZADANIE (11)
Psychologia 27 11 2012
359 11 (2)
11
PJU zagadnienia III WLS 10 11
Wybrane przepisy IAAF 10 11
06 11 09 (28)
info Gios PDF Splitter And Merger 1 11

więcej podobnych podstron