6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Rechnergrundlagen Teil 2 - 62 - Prof. Dipl.-Ing. Komar<br />
Befehlssatz der FPU<br />
Die Vereinbarung von Konstanten und Variablen im Arbeitsspeicher erfolgt mit Hilfe <strong>eines</strong> symbolischen<br />
Assemblers für folgende Zahlendarstellungen:<br />
Typ Darstellung Vereinbarung indirekt adr.<br />
INTEGER WORD 16-Bit dual mit Vorzeichen DW WORD PTR<br />
INTEGER SHORT 32-Bit dual mit Vorzeichen DD DWORD PTR<br />
INTEGER LONG 64-Bit dual mit Vorzeichen DQ QWORD PTR<br />
REAL SHORT 32-Bit, 8-Bit-Char.,23-Bit-Mant. DD DWORD PTR<br />
REAL LONG 64-Bit,11-Bit-Char.,52-Bit-Mant. DQ QWORD PTR<br />
REAL TEMPORARY 80-Bit,15-Bit-Char.,64-Bit-Mant. DT TBYTE PTR<br />
BCD PACKED 80-Bit,,VZ-Byte, 18 Dezimalstellen DT TBYTE PTR<br />
Datentransportbefehle<br />
Mit Transportbefehlen können die internen 10-Byte-Daten des Registerstapels auf die Stapelspitze<br />
umgespeichert oder bei gleichzeitiger Konvertierung in das Anwenderdatenformat vom Speicher gelesen oder in<br />
den Speicher geschrieben werden. Der Austausch mit dem Speicher erfolgt nur über die Stapelspitze ST = ST(0).<br />
Der Ladebefehl schreibt Daten aus dem Arbeitsspeicher oder aus dem FPU-Registerstack auf den Registerstack<br />
Der Schreibbefehl schreibt den Inhalt der FPU-Registerstack-Spitze ST (0) in den Arbeitsspeicher<br />
Der Tauschbefehl tauscht den Inhalt zweier Register des Registerstacks aus.<br />
Jede Übertragung von Operanden zwischen der FPU und dem Arbeitsspeicher ist mit einer Zahlenumwandlung<br />
verbunden, denn die FPU stellt intern alle Zahlen im 80-Bit-Temporary-Real-Format dar.<br />
Für alle FPU-Befehle ( Transportbefehle ) gilt folgende Form:<br />
1.Buchstabe F<br />
2.Buchstabe I für Integer, B für BCD-Zahlen, kein Zeichen für Gleitpunktzahlen<br />
weitere Buchstaben LD für PUSH und lade Stapelspitze ST(0) mit Operand<br />
ST für Speichere Stapelspitze ST(0) nach Operand ( Speicher oder Stapel )<br />
STP für Speichere Stapelspitze nach Operand und POP<br />
XCH für Vertausche Stapelspitze ST(0) mit Stapeloperand<br />
FLD mem PUSH und lade Stapelspitze ST(0) mit REAL-Speicheroperand FLD QWORD PTR[SI]<br />
FILD mem PUSH und lade Stapelspitze ST(0) mit INTEGER-Speicherop. FILD WORD PTR[BP]<br />
FBLD mem PUSH und lade Stapelspitze ST(0) mit BCD-PACKED-Speicherop. FBLD TBYTE PTR[0200]<br />
FLD ST(i) PUSH und lade Stapelspitze ST(0) mit Stapeloperand i FLD ST(3)<br />
FSTP mem Speichere Stapelspitze ST(0) nach REAL-Speicheroperand und POP<br />
FISTP mem Speichere Stapelspitze ST(0) nach INTEGER-Speicheroperand und POP<br />
FBSTP mem Speichere Stapelspitze ST(0) nach BCD-PACKED-Speicheroperand und POP<br />
FSTP ST(i) Speichere Stapelspitze ST(0) nach Stapeloperand i und POP<br />
Die folgenden zwei Befehle FST und FIST sind nicht möglich mit den Sonderformaten INTEGER LONG und<br />
REAL TEMPORARY<br />
FST mem Speichere Stapelspitze ST (0) nach REAL-Speicheroperand (ohne POP )<br />
FIST mem Speichere Stapelspitze ST(0) nach INTEGER-Speicheroperand (ohne POP )<br />
FST ST(i) Speichere Stapelspitze ST(0) nach Stapeloperand i ( ohne POP )<br />
FXCH ST(i) Vertausche Stapelspitze ST(0) mit Stapeloperand i<br />
FXCH Vertausche Stapelspitze ST(0) mit Stapeloperand ST(1)<br />
Das Laden von Konstanten in das oberste Stapelregister ST, wobei eine PUSH-operation ausgeführt wird<br />
FLDZ PUSH und lade Stapelspitze ST mit 0.0<br />
FLD1 PUSH und lade Stapelspitze ST mit 1.0<br />
FLDPI PUSH und lade Stapelspitze ST mit PI<br />
FLDL2T PUSH und lade Stapelspitze ST mit log 2 10<br />
FLDL2E PUSH und lade Stapelspitze ST mit log 2 e<br />
FLDLG2 PUSH und lade Stapelspitze ST mit log 10 2<br />
FLDLN2 PUSH und lade Stapelspitze ST mit ln 2