18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!