Koprocesor Intela
1.
2.
Zapoznaj się z zapisem zmiennoprzecinkowym liczb (materiały w załączeniu),
W celu sprawdzenia zasad zapisu załaduj na wierzchołek stosu rejestrów koprocesora liczbę n a potem prześlij ją do pamięci w formacie 32-bitowym.
a) pp startuje od lokacji FFFFFFFO gdzie w nastawianej pamięci (16 bajtów) są umieszczone rozkazy: MOV SP, #1000 (k. operBC)
JMP (0000): (0400) (k. oper EA)
przesuń, segment.
Wartości odczytywane na wyświetlaczach to:
31
0
adres
31 0
FF FF FF F0 FF FF FF F4 FF FF FF F8 FF FF FF FC
dane
■4—
EA 10 00 BC 04 00 0000
dalsze wartości są bez znaczenia
Zauważ odwrotną kolejność bajtów
b) Począwszy od 4000h wpisz program: FLD, PI (D9, EB)
FST, (5000h) (D9, 16, 00 50)
JMP (EB FE)
Zapisujemy bajty kodu oczywiście w odwrotnej kolejności.
adres
31 0
00 00 40 00 00 00 40 04
Dane
31 0
16 D9 EB D9 FE EB 50 00
W rozkazie FST występuje adres bezpośredni 5000h. Zapisywany w kolejności: młodszy bajt, starszy bajt za kodem operacyjnym. Stosując dalej tą adresację pamiętaj że: mod = 00 - r/m =110
bajt s-i-b nie występuje (tryb rzeczywisty)
3 Po wprowadzeniu kodu wyzeruj pp i przekrokuj. Zauważ, że po odczycie kodu spod adresu 4004 pp mógłby już „wyprowadzić” n pod lokacją 5000. Jednakże ze względu na długą kolejkę pp wpierw odczyta sekwencyjnie 32 bajty (tj. 8 cykli magistrali). Liczbę należy odczytywać w naturalnej kolejności
1. - bit domyślny
mantysa (fraction)
Znak
S
Wykładnik (exp)
Mantysa przyjmuje wartości od 1.0 do prawie 2 (1.1 ... 1) Aby otrzymać wykładnik E należy od pola exp odjąć tzw. Bazę B = 01111111 E = EXP — B
Wartość E może być więc dodatnia lub ujemna.
Jeżeli E=0 to mantysa jest wprost liczbą zmiennoprzecinkową E>0 to przesuwamy przecinek mantysy w prawo E<0 to w lewo.