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