/* Test rozkazu DzD - Dzielenia Długiego Dane: [0o02000] = 0o1500000000000; =0.01101 // dzielna = 13/32 [0o02001] = 0o3600000000000; =0.11110 // dzielnik = 30/32 Długi iloraz, dzielna/dzielnik = 13/30, zostanie zapisany w komórkach [0o10000]..[0o10005]: [0o10000] = bity 0... 38 Ω = bit 39 dla N=43 (bit 0 = bit znaku) [0o10001] = bity 39... 77 Ω = bit 78 dla N=82 [0o10002] = bity 78...116 Ω = bit 117 dla N=121 [0o10003] = bity 117...155 Ω = bit 156 dla N=160 [0o10004] = bity 156...194 Ω = bit 195 dla N=199 [0o10005] = bity 195...233 Ω = bit 234 dla N=238 Najdalsze możliwe do uzyskania bity ilorazu znajdą się w komórce [0o10206], a po zaokrągleniu bitem Omega dodatkowo będą zapisane w komórce [0o10406]: [0o10206] = bity 212...250 Ω = bit 251 dla N=255 [0o10406] = bity 212...250 zaokrąglone bitem Ω Wynik: <-------- [0o10000]: bity 0..38 -------><------- [0o10001]: bity 39..77 ------><------ [0o10002]: bity 78..116 ------><------ [0o10003]: bity 117..155 -----><------ [0o10004]: bity 156..194 -----><------ [0o10005]: bity 195..233 -----> 0.01101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101 < >< >< >< >< [0o10206]: niezaokrąglone bitem Omega 011101110111011101110111011101110111011 [0o10406]: zaokrąglone bitem Ω=1: 011101110111011101110111011101110111100 <----------- bity 212..250 -----------> Słowo w komórce [0o10206], na pozycjach bitowych 22..38 zawiera już tylko 17 dodatkowych bitów ilorazu w uzupełnieniu do wcześniej otrzymanych. Bity 0..21 tego słowa pokrywają się z bitami 17..38 poprzedniego słowa, zapisanego w komórce [0o10005]. Słowo w komórce [0o10406] zawiera zaokrągloną bitem Omega wersję słowa z komórki [0o10206]. Zaokrąglenie to (normalne) polega na dodaniu bitu Omega na najmłodszej pozycji bitowej słowa, z ewentualnym przeniesiem na starsze pozycje. Zatem bity 0..21 słowa [0o10406] mogą być inne niż te same bity słowa [0o10206] i bity 17..38 słowa zapisanego w komórce [0o10005]. Co więcej, zaokrąglenie może wymagać propagacji przeniesienia na wszystkie komórki zawierające starsze bity, a nawet spowodować nadmiar (przeniesienie na bit znaku ilorazu). Bit nr 0 w początkowej komórce ilorazu jest bitem znaku ilorazu. W następnych komórkach ilorazu, bity nr 0 są zwykłymi bitami rozwinięcia liczby. */ ;Etyk: Rozkaz Komentarz ;===== =================== ================================ :401 00000: Adres początku programu TEST :050 02000 + 00 A=[licznik] :015 02001 + 00 M=[mianownik], M, A/=M :401 10000 + 00 [iloraz0] = A bity 0..38 Ω = bit 39 :050 02000 + 00 A=[licznik] :716 00122 + 00 DzD: A //= M, 82 :401 10001 + 00 [iloraz1] = A bity 39..77 Ω = bit 78 :050 02000 + 00 A=[licznik] :716 00171 + 00 DzD: A //= M, 121 :401 10002 + 00 [iloraz2] = A bity 78..116 Ω = bit 117 :050 02000 + 00 A=[licznik] :716 00240 + 00 DzD: A //= M, 160 :401 10003 + 00 [iloraz3] = A bity 117..155 Ω = bit 156 :050 02000 + 00 A=[licznik] :716 00307 + 00 DzD: A //= M, 199 :401 10004 + 00 [iloraz4] = A bity 156..194 Ω = bit 195 :050 02000 + 00 A=[licznik] :716 00356 + 00 DzD: A //= M, 238 :401 10005 + 00 [iloraz5] = A bity 195..233 Ω = bit 234 :050 02000 + 00 A=[licznik] :716 00377 + 00 DzD: A //= M, 255 Najdalsze możliwe do uzyskania bity ilorazu :401 10206 + 00 [iloraz206] = A bity 212...250 Ω = bit 251 :426 00000 + 00 Okr: A += Omega Najdalsze możliwe do uzyskania bity ilorazu :401 10406 + 00 [iloraz406] = A po zaokrągleniu normalnym bitem Omega :726 17777 TEST 00 Stop 17777 :401 02000: Przykładowe dane :150 00000 00000 00 =0.01101 // dzielna = 13/32 :360 00000 00000 00 =0.11110 // dzielnik = 30/32 ;=======Koniec programu=========================================