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 2012359 11 (2)11PJU zagadnienia III WLS 10 11Wybrane przepisy IAAF 10 1106 11 09 (28)info Gios PDF Splitter And Merger 1 11więcej podobnych podstron