TEMAT: SPOSOBY WYKONYWANIA OPERACJI MNOŻENIA LICZB

Transkrypt

TEMAT: SPOSOBY WYKONYWANIA OPERACJI MNOŻENIA LICZB
TEMAT:
SPOSOBY WYKONYWANIA OPERACJI MNOŻENIA LICZB
STAŁOPRZECINKOWYCH
Cel pracy - zapoznanie się ze sposobami mnożenia liczb stałoprzecinkowych w kodzie
dwójkowym, z otrzymaniem kodu uzupełnieniowego do dwóch oraz ze schematami
operacyjnymi wykonującymi zaznaczone operacji.
Zadania wykonywane przed przystąpieniem do pracy laboratoryjnej.
1. Zapoznać się ze wskazówkami dotyczącymi opisu programu GALAXY i sposobów
mnożenia liczb w kodzie dwójkowym.
2. Opracować schemat operacyjny oraz mikroalgorytm wykonywania w kodzie
dwójkowym operacji mnożenia
Z = X*Y ,
gdzie X i Y są liczby 9- bitowe ( najbardziej znaczący bit-znakowy). Wariant operacji
mnożenia określa się na podstawie tabel 1 i 2, gdzie a1,a2,...,a7-bity wyznaczone przez
prowadzącego zajęcia. Tabela 1 określa sposób wykonania operacji mnożenia, a tabela 2formę przedstawienia danych ( kod dwójkowy (KD) lub uzupełnieniowy do dwóch (UD)).
Przed początkiem wykonania operacji mnożna i mnożnik znajdują się w dowolnych dwóch
rejestrach.
Przykład schematu operacyjnego który można wykorzystać do wykonania jednego ze
sposobów wykonywania operacji mnożenia liczb bez znaku, został przedstawiony na rys.1. W
tym wariancie operację mnożenia przeprowadza się poczynając z mniej znaczących bitów
mnożnika, przesuwając formowany rezultat w stronę mniej znaczących bitów. Przed
wykonaniem operacji mnożnik jest zapisany w rejestrze R10, a mnożna znajduje się w
rejestrze R9. R12 początkowo jest wyzerowany. W miarę wykonywania operacji mnożenia w
tym rejestrze ( R12 ) będą formowane bardziej znaczące bity rezultatu. Mniej znaczące bity
rezultatu będą systematycznie zajmowały, w miarę przesuwania się bitów mnożnika, rejestr
R10. Po wykonaniu operacji pełny rezultat będzie zajmował 2n bitów i znajdował się w
rejestrach R12 i R10. Rejestr R11 wykorzystywany jest jak licznik pętli.
3. Opracować program w mikroasemblerze środowiska GALAXY realizujący dana
operację.
Kolejność wykonywania ćwiczenia laboratoryjnego.
Z pomocą emulatora programowego poprawić ewentualne błędy znajdujące się w
programie. Wyciągnąć wnioski.
Pytania kontrolne.
1. Omów podstawowe sposoby mnożenia liczb w kodzie dwójkowym.
2. W jaki sposób można przeprowadzić operację arytmetycznego i (lub) logicznego
przesunięcia słów posiadających podwójną precyzję?
3.Omów sposób przyspieszenia wykonania operacji mnożenia przez jednoczesne
badanie dwóch sąsiednich cyfr mnożnika.
4. Wyjaśnij pojęcia : mikroalgorytm, mikrooperacja, mikroinstrukcja.
5. Jakie mikrooperacje można wykonywać w rozpatrywanym systemie
komputerowym równocześnie, a jakie sekwencyjnie ?
Tabela 1
a5
a4
0
0
0
1
1
0
1
1
Tabela 2
a7
0
0
0
0
1
1
1
1
a2
0
0
1
1
0
0
1
1
a3
0
1
0
1
0
1
0
1
sposób mnożenia
4
1
2
3
X
UD
KD
KD
UD
KD
UD
UD
KD
Y
UD
KD
UD
KD
KD
UD
KD
UD
Tabela 3
a6
0
0
1
1
Z
KD
UD
KD
KD
UD
KD
UD
UD
a1
0
1
0
1
X
>0
<0
<0
>0
Y
<0
>0
<0
>0
Uwaga: W wariancie zadania a6=1 i a1=1 trzeba używać przyspieszenie wykonania operacji
mnożenia przez jednoczesne badanie dwóch sąsiednich bitów mnożnika.
Sposób 1-szy wykonywania operacji mnożenia liczb bez znaku: -poczynając z mniej
znaczących bitów mnożnika, przesuwając formowany rezultat w stronę mniej znaczących
bitów (patrz rys.1.);
2-gi: -poczynając z mniej znaczących bitów mnożnika, przesuwając mnożna w stronę
starszych znaczących bitów (patrz rys.2);
3-ci: -poczynając z starszych znaczących bitów mnożnika, przesuwając formowany
rezultat w stronę starszych znaczących bitów (patrz rys.3);
4-ty: - poczynając z starszych znaczących bitów mnożnika, przesuwając mnożna w
stronę mniej znaczących bitów (patrz rys.4).
Z(st.)
R12
Z(mł.)
R10
mnożnik Y
T
SM
R9
mnożna X
R11
licznik
Rys. 1. Pierwszy sposób wykonania operacji mnożenia. Schemat operacyjny
Rys. 2. Drygi sposób wykonania operacji mnożenia. Schemat operacyjny
Z(st.)
R10
mnożnik Y
T
Z(mł.)
R12
SM
R11
licznik
R9
mnożna X
Rys. 3. Trzeci sposób wykonania operacji mnożenia. Schemat operacyjny
Rys. 4. Czwarty sposób wykonania operacji mnożenia. Schemat operacyjny