6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Rechnergrundlagen Teil 2 - 65 - Prof. Dipl.-Ing. Komar<br />
Arithmetische Sonderbefehle und mathematische Funktionen<br />
können nur auf das oberste Stapelregister ST angewendet werden, bzw bei zwei Operanden auch auf das<br />
folgende Stapelregister ST(1)<br />
FSQRT ST = Quadratwurzel ( ST ), Radikand muß positiv sein<br />
FSCALE ST = ST * 2 hoch ST(1), ST(1) muß ganzzahlig sein ( WORD INTEGER )<br />
FPREM ST = ST - ST(1), bildet teilweise ST = ST MODulo ST(1) unvollständige Modulodiv.<br />
C2=0: Rest in ST < Modulus in ST(1)<br />
C2=1: Rest in ST > Modulus in ST (1) � FPREM wiederholen<br />
FPREM1 berechnet wie FPREM eine Modulo-Division, allerdings nach dem IEEE-Standard<br />
Dieser Befehl steht erst ab 80387 zur Verfügung<br />
FRNDINT mache ST ganzzahlig ( INTEGER ) durch runden oder abschneiden<br />
FXTRACT zerlege ST in Exponent und Mantisse dann PUSH neu : ST = Mantisse , ST(1)Exponent<br />
FABS ST = |ST| bilde Absolutwert von ST<br />
FCHS ST = – ST wandle das Vorzeichen von ST um<br />
Mathematischen Funktionen<br />
werden auf das oberste Stapelregister ST = ST(0) und bei zwei Operanden auch auf das folgende Stapelregis ter<br />
ST(1) angewendet.<br />
Bei den trigonometrischen Funktionen stehen nur Tangens und Arcustangens zur Verfügung, aus denen die<br />
anderen Funktionen abgeleitetet werden müssen.<br />
FPTAN ( 0 < δ ≤π / 4 ) PUSH und bilde tan (ST) = Y/X Stapel (neu): ST=X ST(1) = Y<br />
FPATAN ( 0 < y < x< ∞ ) bilde atan ( ST(1) / ST ) und POP Stapel (neu): ST= atan ( y/x)=atan (ST(1)/ST)<br />
F2XM1 ( 0 < x < 0.5 ) ST = 2 ST – 1 Funktion : z = 2 x – 1<br />
FYL2X ( 0 < x < ∞ ) ST = ST(1) * log 2 (ST) und POP Stapel (neu): ST = y log 2 x<br />
2<br />
FYL2XP1 ( 0 < |x|< (1 – )) ST = ST(1)*log 2 (ST+1) und POP Stapel (neu): ST = y log 2 (x + 1)<br />
2<br />
FPU-Steuerbefehle<br />
dienen zur Programmierung des Steuerregisters und zum Speichern der FPU-Register in den Arbeitsspeicher.<br />
FINIT FPU in Grundeinstellung bringen ( initialisieren )<br />
FDISI verhindert Interrupts durch FPU<br />
FENI erlaubt Interrupts durch FPU<br />
FLDCW mem lade Steuerwort mit Inhalt von Speicherwort mem<br />
FSTCW mem speichere Steuerwort nach Speicherwort mem<br />
FSTSW mem speichere Statuswort nach Speicherwort mem<br />
FCLEX lösche Ausnahme-, IR- und Busy-Bits im Statuswort<br />
FSTENV mem speichere Environment-Register nach 14 Bytes (mem)<br />
FLDENV mem lade Environment-Register mit 14 Bytes (mem)<br />
FSAVE mem speichere Environment und Stapel nach 94 Bytes (mem)<br />
FRSTOR mem lade Environment-Register und Stapel mit 94 Bytes (mem)<br />
FINCSTP erhöhe Stapelzeiger um 1 (ähnlich POP ), ke ine Freigabe<br />
FDECSTP vermindere Stapelzeiger um 1 (ähnlich PUSH )<br />
FFREE ST(i) kennzeichne Stapeloperand i als leer (empty)<br />
FNOP warte 13 Takte (lade ST mit ST = no operation )<br />
FWAIT wie 8086-Befehl WAIT = warte bis TEST-Eingang LOW