Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LAB 5
- Wstęp teoretyczny
- Koprocesor posiada osiem 80-bitowych rejestrów zmiennoprzecinkowych oraz trzy 16-bitowe rejestry kontrolne.
- Kiedy odwołujemy się do rejestrów koprocesora st, st(1) i tak dalej, powinniśmy mieć na uwadze,
- że koprocesor traktuje swoje osiem rejestrów jako jeden stos.
- St(0) jest to szczyt stosu, natomiast st(7) to najniżej położony element.
- Używając rozkazu fld ładujemy zawartość innego podanego rejestru st do st(0). Przesuwana jest wtedy numeracja wszystkich rejestrów w górę.
- Podobnie jest z innymi rozkazami:
- - fld1 - ładuje stałą 1 do rejestru st(0)
- - fldl - ładuje liczbę z pamięci do st(0)
- - fst - wartość z rejestru st(0) jest umieszczana w innym rejestrze st
- - fstp - wartość z rejestru st(0) jest kopiowana do innego podanego rejestru
- Słowo kontrolne koprocesora służy do kontroli sposobu wykonywania operacji matematycznych przez koprocesor.
- Niektóre bity to na przykład - maska precyzji, maska niedomiaru, nadmiaru, maska dzielenia przez zero itp. Rozkazy:
- fstcw - zapisanie zawartości rejestru kontrolnego do pamięci,
- fldcw - zapisanie zawartości w pamięci do rejestru kontrolnego.
- Wartość 1 maski oznacza podjęcie przez koprocesor próby korekcji błedu, 0 natomiast generuje sygnał przerwania.
- Słowo statusu koprocesora składa się z dwóch pól : pola warunków oraz pola statusu.
- Pole warunków zawiera m.in. znacznik precyzji, który jest równy jeden, gdy trzeba zaokrąglać wynik,
- znacznik dzielenia przez zero, gdzie wartość jeden oznacza dzielenie przez zero przy dzielniku różnym od zera,
- oraz znacznik błędnej operacji, który jest równy jeden np. przy wyciąganiu pierwiastka z ujemnej liczby
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement