Arytmometr Wielokrotnej Precyzji: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
brak opisu edycji
(Utworzył nową stronę „Arytmometr wielokrotnej precyzji zwiększa zakres operacji wykonywanych hardware'owo przez minikomputer o następujące działania: * dodawanie i odejmowanie liczb d...”)
 
Nie podano opisu zmian
Linia 22: Linia 22:
=== Dzielenie liczb stałoprzecinkowych ===
=== Dzielenie liczb stałoprzecinkowych ===


Dzielna zapisana jest w rejestrach R1 i R2, zajmuje dwa słowa maszyny. Dzielnik długości jednego słowa zajmuje jedno słowo w pamięci; iloraz i reszta zapisywane są odpowiednio w rejestrach R2 i R1.  Znak reszty zgodny jest ze znakiem dzielnej. Rozkaz dzielenia ustawia wskaźniki Z i M. Wskaźniki V i C pozostają bez zmiany. W przypadku otrzymania ilorazu nadmiarowego oraz próby dzielenia przez zero zgłaszane są przerwania. W obu wypadkach rejestry dzielnej (R1 i R2) oraz wskaźniki Z, M, C, V pozostają bez zmiany.
Dzielna zapisana jest w rejestrach R1 i R2, zajmuje dwa słowa maszyny. Dzielnik długości jednego słowa zajmuje jedno słowo w pamięci; iloraz i reszta zapisywane są odpowiednio w rejestrach R2 i R1.  Znak reszty zgodny jest ze znakiem dzielnej. Rozkaz dzielenia ustawia wskaźniki Z i M. Wskaźniki V i C pozostają bez zmiany. W przypadku otrzymania ilorazu nadmiarowego oraz próby dzielenia przez zero zgłaszane są [[Przerwania|przerwania]]. W obu wypadkach rejestry dzielnej (R1 i R2) oraz wskaźniki Z, M, C, V pozostają bez zmiany.


== Działania na liczbach zmiennoprzecinkowych ==
== Działania na liczbach zmiennoprzecinkowych ==
Linia 30: Linia 30:
Poza normalizacją rozkazy zmiennoprzecinkowe są dwuargumentowe. Argument pierwszy zajmuje rejestry uniwersalne jednostki centralnej R1, R2 i R3, argument drugi - trzy kolejne komórki pamięci. Rozkaz normalizacji ma jeden argument, umieszczony w rejestrach R1, R2 i R3. Wyniki wszystkich rozkazów zmiennoprzecinkowych wpisywane są do rejestrów R1, R2 i R3. Na podstawie wartości wyniku ustawiane są wskaźniki Z, M i C. Wskaźnik Z zapalany jest, gdy wynik równa się zeru. Rejestry R1, R2 i R3 są wówczas zerowane. Wskaźnik M kest zapalany, gdy wynik jest liczbą ujemną. Wskaźnik C przechowuje bit chroniony wyniku. Przy normalizacji jest on zawsze zerem. Wskaźnik V pozostaje bez zmiany.
Poza normalizacją rozkazy zmiennoprzecinkowe są dwuargumentowe. Argument pierwszy zajmuje rejestry uniwersalne jednostki centralnej R1, R2 i R3, argument drugi - trzy kolejne komórki pamięci. Rozkaz normalizacji ma jeden argument, umieszczony w rejestrach R1, R2 i R3. Wyniki wszystkich rozkazów zmiennoprzecinkowych wpisywane są do rejestrów R1, R2 i R3. Na podstawie wartości wyniku ustawiane są wskaźniki Z, M i C. Wskaźnik Z zapalany jest, gdy wynik równa się zeru. Rejestry R1, R2 i R3 są wówczas zerowane. Wskaźnik M kest zapalany, gdy wynik jest liczbą ujemną. Wskaźnik C przechowuje bit chroniony wyniku. Przy normalizacji jest on zawsze zerem. Wskaźnik V pozostaje bez zmiany.


Gdy któryś z argumentów jest liczbą nieznormalizowaną lub zachodzi próba dzielenia przez zero, to niezależnie od wartości drugiego argumentu zgłaszane jest przerwanie (wyjątek stanowi zero nieznormalizowane). Rejestry R1, R2 i R3 oraz wskaźniki Z, M, C pozostają wówczas bez zmiany. W przypadku otrzymania w wyniku podmiaru lub nadmiaru cechy zgłaszane są odpowiednie przerwania, co nie blokujue zapisu wyniku do rejestrów R1, R2 i R3 oraz ustawienia wskaźników Z, M, C.
Gdy któryś z argumentów jest liczbą nieznormalizowaną lub zachodzi próba dzielenia przez zero, to niezależnie od wartości drugiego argumentu zgłaszane jest [[Przerwania|przerwanie]] (wyjątek stanowi zero nieznormalizowane). Rejestry R1, R2 i R3 oraz wskaźniki Z, M, C pozostają wówczas bez zmiany. W przypadku otrzymania w wyniku podmiaru lub nadmiaru cechy zgłaszane są odpowiednie [[Przerwania|przerwania], co nie blokujue zapisu wyniku do rejestrów R1, R2 i R3 oraz ustawienia wskaźników Z, M, C.
 
=== Dodawanie i odejmowanie liczb zmiennoprzecinkowych ===
 
Jeden ze składników sumy jest odczytywany z rejestrów, drugi składnik sumy z pamięci. Odjemna odczytywana jest z rejestrów, odjemnik z pamięci. W przypadku, gdy moduł różnicy cech argumentów jest większy lub równy 40, mniejszy argument traktowany jest jako zerowy. Działania na mantysach wykonywane są w sumatorze przedłużonym o dalszych 40 pozycji. Po normalizacji wyniku wykonywane jest zaokrąglenie. Po zaokrągleniu wynik ponownie sprowadzany jest do poztaci znormalizowanej.
 
=== Mnożenie i dzielenie liczb zmiennoprzecinkowych ===
 
Mnożna umieszczona jest w pamięci, mnożnik w rejestrach. Działania na mantysach czynników wykonywane są z dokładnością analogiczną jak pw dodawaniu i odejmowaniu. Dzielna umieszczona jest w rejestrach, dzielna w pamięci. Wyznacza się 40 mitów mantysy ilorazu.
 
=== Normalizacja ===
 
Rozkaz normalizacji pobiera liczbę zmiennoprzecinkową z rejestrów R1, R2 i R3 i umieszcza ją tam po znormalizowaniu. W procesie normalizacji mantysa uzupełniana jest zerami.
 
== Przerwania ==
 
Rozróżniane są 4 rodzaje [[Przerwania|przerwań]] generowanych przez arytmometr wielokrotnej precyzji:
* nadmiar w wyniku dzielenia stałoprzecinkowego (pozycja 7 rejestru RZ)
* podmiar cechy liczby zmiennoprzecinkowej (pozycja 8 rejestru RZ)
* nadmiar cechy liczby zmiennoprzecinkowej (pozycja 9 rejestru RZ)
* nieznormalizowany argument zmiennoprzecinkowy lub dzielenie przez zero (pozycja 10 rejestru RZ)

Menu nawigacyjne