1 Wykład 2: Liczby rzeczywiste (stało i zmiennoprzecinkowe) Koprocesorbudowa podstawowe operacje
2 Liczby rzeczywiste stałoprzecinkoweZapis 8.8 oznacza 8 bitów części całkowitej (w tym bit znaku) i 8 bitów części ułamkowej Tabela 1a. Wartości (wagi) bitów w zapisie binarnym liczb rzeczywistych stałoprzecinkowych ( słowo 16 bitowe, zapis 8.8 ) - zakres:
3 Liczby rzeczywiste stałoprzecinkowePrzykład 1 (zapis 8.8) Nr liczba b reprezentuje wartość 1*24 + 1*21 + 1* * *2-8 = 1/2 + 1/8 + 1/256
4 Liczby rzeczywiste stałoprzecinkoweZapis 1.15 oznacza 0 bitów części całkowitej (1 bit znaku) i 15 bitów części ułamkowej Tabela 1b. Wartości (wagi) bitów w zapisie binarnym liczb rzeczywistych stałoprzecinkowych (słowo 16 bitowe, zapis 1.15 ) - zakres:
5 Liczby rzeczywiste stałoprzecinkowePrzykład 2 (zapis 1.15) Nr Z liczba b reprezentuje wartość 1* *2-6 + 1* * *2-15 = 1/8 + 1/64 + 1/ / /32768
6 Liczby rzeczywiste stałoprzecinkoweRozdzielczość zapisu stałoprzecinkowego /215 = 1/( ) = Rozdzielczość zapisu stałoprzecinkowego /223 = 1/( )= = Rozdzielczość zapisu stałoprzecinkowego /231 = 1/( )= = Rozdzielczość zapisu stałoprzecinkowego /27 = 1/128 = = (-1..+1)
7 Liczby rzeczywiste zmiennoprzecinkoweCo oznacza zapis? e-5 = *10-5 /100000
8 Liczby rzeczywiste zmiennoprzecinkoweZapis zmiennoprzecinkowy: single (32 bity) 31 22...0 znak wykładnik mantysa wartość = (-1)znak * mantysa * 2 wykładnik wartość = (-1)znak * 1.xxxxx * 2 wykładnik znak = 0/1 mantysa = wykładnik = ( : offset=127)
9 Liczby rzeczywiste zmiennoprzecinkowePrzykład 1: liczba rzeczywista 1.0 = 1. 0 * 20 znak = 0 , wykładnik = 0 , mantysa = 1.0 | | | = 0| | = 3F h
10 Liczby rzeczywiste zmiennoprzecinkowePrzykład 2: liczba rzeczywista = = * 27 znak = 0 , wykładnik= +7, mantysa = (1) (=127+7=134) | | | = b = h
11 Liczby rzeczywiste zmiennoprzecinkowe - zestawienie:Rys. 1
12 Liczby rzeczywiste zmiennoprzecinkowe - zestawienie:Rozdzielczość i zakres: single (32 bity): rozdzielczość: ~7 cyfr znaczących zakres: 2– ~= double (64 bity): ~16 cyfr znaczących zakres: 2– ~= extended (80 bitów): ~19 cyfr znaczących zakres: 2– ~=
13 Liczby rzeczywiste zmiennoprzecinkowe -wartości specjalne: quiet NaNs (QNaNs) signaling NaNs (SNaNs)
14 Budowa koprocesora Rys.2 Rejestry koprocesora
15 Budowa koprocesora Rys.3 Stos rejestrów koprocesora FLD value1
16 Operacje na stosie koprocesoraFINCSTP FDECSTP FFREE ST(1) FXCH ST(2) FINIT
17 Koprocesor - podstawowe działaniawynik = (5.6* 2.4) + (3.8*10.3) FLD value1 // a value1=5.6 FMUL value2 // b value2=2.4 FLD value3 FMUL value4 // c value3=3.8 FADD ST,ST(1) //d value4=10.3 FST wynik // wynik=52.58 lub FSTP wynik Rys.4 Przykład operacji na koprocesorze
18 Pozostałe rozkazy Rys.5 Zdefiniowane stałe koprocesoraRys.6 Instrukcje trygonometryczne koprocesora
19 Budowa koprocesora Rys.7 Słowo stanu koprocesora (FPU Status Word)C0 == Carry Flag C3 == Zero Flag (C0,C3 – ustawiane po instrukcjach testujących lub porównujących, np. FTST)
20 Budowa koprocesora Rys.8 Słowo kontroli koprocesora (FPU Control Word)