POLITECHNIKA KOSZALICSKA - WYDZIAA ELEKTRONIKI I INFORMATYKI
Architektura komputerów
Zadanie laboratoryjne N 9
Zadanie laboratoryjne N 9
TEMAT: ROZKAZY JEDNOARGUMENTOWE
Celem niniejszego zadania jest zapoznanie się studentów z rozkazami inkrementacji,
dekrementacji, negacji, zmiany znaku liczby jak również z rozkazami mnożenia, oraz operacjami na
stosie. Wszystkie te rozkazy korzystają z adresacji bezpośredniej a format ich rozkazu został
przedstawiony na Rysunku 1. Taki format rozkazu jest nam już znany z poprzednich zajęć.
15 9 8 7 6 5 3 2 0 15 8 7 0
Kod operacji W MOD Kod op. R/M DISP8 DISP8
Rysunek 1.: Format rozkazu jednoargumentowego z rozszerzonym kodem operacji.
Niektóre rozkazy, z którymi będziemy pracować w tym zadaniu wywierają wpływ na znaczniki
flag mikroprocesora więc należy to uwzględnić w programie, który będzie tworzony na obecnych
zajęciach laboratoryjnych. Wpływ poszczególnych rozkazów na odpowiednie flagi zawarto w Tabeli 1
niniejszego przygotowania, gdzie OF oznacza flagę przepełnienia, CF przeniesienia/pożyczki, SF
znaku, ZF zera.
Tabela 1: Tabela 2:
Operacja Rozkazy OF CF SF ZF Pole Pole MOD
INC DEC + - + + R/M 00 01 10 1 1
NEG + * + + W=0 W=1
NOT - - - - 000 BX+SI BX+SI+D8 BX+SI+D16 AL AX
Mnożenie MUL IMUL + + ? ? 001 BX+DI BX+DI+D8 BX+DI+D16 CL CX
Dzielenie DIV IDIV ? ? ? ? 010 BP+SI BP+SI+D8 BP+SI+D16 DL DX
Oznaczenia: '+' wynik operacji wpływa na
011 BP+DI BP+DI+D8 BP+DI+D16 BL BX
flagę; '-' nie wpływa; ? nieustalone; * -
100 SI SI+D8 SI+D16 AH SP
gdy argument ma wartość 0, znacznik
przyjmuje wartość 0, w przeciwnym wypadku
101 DI DI+D8 DI+D16 CH BP
jest ustawiany na wartość 1
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.
Zagadnienia do opracowania przed przystąpieniem do wykonywania ćwiczenia:
1. Zasada działania rozkazów:
- DEC; - IDIV;
- INC; - IMUL;
- NEG; - MUL;
- NOT; - PUSH;
- DIV; - POP;
2. Zapoznaj się ze sposobami mnożenia i dzielenia liczb binarnych.
3. Zapisz dla swojego wariantu kody rozkazów zawartych w Tabeli 2 i Tabeli 3 w postaci
binarnej (z zaznaczeniem poszczególnych pól) oraz w postaci szesnastkowej.
4. Sprawdz zależności pomiędzy rejestrami BP, SI i DI, a odpowiadającymi im rejestrami
segmentowymi.
1 z 3
POLITECHNIKA KOSZALICSKA - WYDZIAA ELEKTRONIKI I INFORMATYKI
Architektura komputerów
Zadanie laboratoryjne N 9
Tabela 3:
Nr st. Operacje Nr st. Operacje
1 DEC word ptr [BX+SI+D8]; 6 INC Arg1;
NEG AL; NOT byte ptr [SI+D8];
2 INC Arg1; 7 DEC DH;
NOT byte ptr [BX+DI+D8]; NOT word ptr [DI+D8];
3 DEC DH; 8 INC byte ptr[SI+D8];
NOT word ptr [BP+DI+D8]; NEG Arg1;
4 INC byte ptr [BP+SI+D8]; 9 DEC BH;
NEG Arg1; NEG word ptr [BP+D8];
5 DEC word ptr [BP+DI+D8]; 10 INC word ptr [BX+D8];
NEG Arg2; NOT CH;
byte ptr określa wielkość operandu jako bajt; word ptr określa wielkość operandu
jako słowo; D8 przesuniecie wielkości 8 bitów; Arg1 16 bitowe zmienne zapisane
w pamięci RAM; Arg2 8 bitowe zmienne zapisane w pamięci RAM
Tabela 4:
Operacja Kod operacji Uzupełnienie Operacja Kod operacji Uzupełnienie
kodu operacji kodu operacji
DEC 1111 111W 001 IMUL 1111 011W 101
INC 1111 111W 000 MUL 1111 011W 100
NEG 1111 011W 011 PUSH 1111 1111 110
NOT 1111 011W 010 POP 1000 1111 000
Zadania podstawowe do wykonywania w czasie trwania ćwiczeń laboratoryjnych:
P_1.Rozbuduj program podstawowy z poprzedniego zadania laboratoryjnego o rozkazy
zawarte w Tabeli 3.
P_2.Zakładamy, że BX, SI i DI odnoszą się tylko do rejestru DS, jeśli mamy do czynienia z
rejestrem BP odnosimy się do rejestru SS niezależnie czy w adresie mamy jeszcze do czynienia
z BX, SI lub DI.
P_3.W czasie dekodowania sprawdzaj cały rozkaz (16 bitów).
Tabela 5:
Nr st. Operacje Nr st. Operacje
1 i 5 POP; INC; DEC;NOT; 6 i 10 PUSH; INC; DEC; NEG;
MUL (wariant mnożenia 1) MUL (wariant mnożenia 1)
2 PUSH; INC; DEC; NEG; 7 POP; INC; DEC; NOT;
MUL (wariant mnożenia 2) MUL (wariant mnożenia 2)
3 POP; INC; DEC;NOT; 8 PUSH; INC; DEC; NEG;
MUL (wariant mnożenia 3) MUL (wariant mnożenia 3)
4 PUSH; INC; DEC; NEG; 9 POP; INC; DEC;NOT;
MUL (wariant mnożenia 4) MUL (wariant mnożenia 4)
Zadania dodatkowe wykonywania w czasie trwania ćwiczeń laboratoryjnych:
D_1.Rozbuduj program podstawowy tego ćwiczenia laboratoryjnego o rozkazy zawarte w
Tabeli 5 dla dowolnej wartości R/M z zakresu od 000 do 011 dla MOD = 01, zarówno dla
2 z 3
POLITECHNIKA KOSZALICSKA - WYDZIAA ELEKTRONIKI I INFORMATYKI
Architektura komputerów
Zadanie laboratoryjne N 9
W = 0, jak i dla W = 1. Rozkaz MUL ma być wykonywany tylko dla W = 0 (AX ! AL * m8;
m8 8 bitowa wartość z pamięci RAM).
D_2.Dekoduj tylko bity odpowiadające za kod operacji (15 9 i 5 3).
D_3.Zapisz w postaci algorytmu fragment programu wykonujący mnożenie zgodnie z
wariantem zadanym w Tabeli 5:
- 1 wariant mnożenia: mnożna stała, mnożnik i iloczyn przesuwane w prawo;
- 2 wariant mnożenia: mnożna przesuwana w lewo, mnożnik w prawo, iloczyn stały;
- 3 wariant mnożenia: mnożna stała, mnożnik i iloczyn przesuwane w lewo;
- 4 wariant mnożenia: mnożna przesuwana w prawo, mnożnik w lewo, iloczyn stały;
D_4.Zadbaj o to by napisany program zajmował jak najmniej komórek pamięci mikro
rozkazów.
3 z 3
Wyszukiwarka
Podobne podstrony:
TI 99 08 19 B M pl(1)ei 05 08 s029Wyklad 2 PNOP 08 9 zaoczneEgzamin 08 zbior zadan i pytanniezbednik wychowawcy, pedagoga i psychologa 08 4 (1)Kallysten Po wyjęciu z pudełka 0808 Inflacjacan RENAULT CLIO III GRANDTOUR 08 XX PL 001więcej podobnych podstron