18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 - 64 - Prof. Dipl.-Ing. Komar<br />

FyyyR mem ST = Speicheroperand ( SHORT oder LONG REAL ) – | / ST<br />

FIyyyR mem ST = Speicheroperand ( WORD oder SHORT INTEGER ) – | / ST<br />

FyyyR ST,ST(i) ST = Stapeloperand i – | / Stapelspitze ST<br />

FyyyR ST(i),ST ST(i) = Stapelspitze ST – | / Stapeloperand ST(i)<br />

FyyyRP ST(i),ST ST(i) = Stapelspitze ST – | / ST(i) und POP: ST geht verloren<br />

FyyyR ST(1) = Stapelspitze ST – | / ST(1) und POP: Ergebnis in ST<br />

yyy => SUB – oder DIV / ; R bewirkt Vertauschung der Operandenreihenfolge<br />

Beispiele:<br />

FIADD WORD PTR[BX] ; ST = ST + 2-Byte-Integerwert in DS:BX<br />

FDIV DWORD PTR [0200] ; ST = ST/ 4-Byte-Realwert in DS:200<br />

Vergleichsbefehle<br />

Die Vergleichsbefehle bilden eine Testsubtraktion zwischen dem obersten Stapelregister ST = ST(0) und einer<br />

Speicherstelle oder einem anderen Stapelregister, wobei die beiden Operanden nicht verändert werden sondern<br />

nur die beiden Bedingungsbits C3 und C0 des FPU-Statusregisters entsprechend dem Ergebnis gesetzt oder<br />

gelöscht werden.<br />

Da die FPU keine eigenen bedingten Sprungbefehle hat, müssen die Bedingungsbits in das Statusregister der<br />

CPU gebracht und dort durch die bedingten Sprünge der CPU ausgewertet werden.<br />

Die FPU-Bedingungsbits C3 und C0 werden in die Bedingungsbits Z (Zero) und C (Carry) des CPU-Statusregisters<br />

kopiert und es kann mit den bedingten Sprungbefehlen JA, JAE, JE, JNE, JBE und JB verzweigt<br />

werden.<br />

FCOM mem Differenz ST – Speicheroperand ( SHORT oder LONG REAL )<br />

FICOM mem Differenz ST – Speicheroperand ( WORD oder SHORT INTEGER )<br />

FCOM ST(i) Differenz ST – Stapeloperand i<br />

FCOM Differenz ST – Stapeloperand ST(1)<br />

FCOMP mem Differenz ST – Speicheroperand und POP ( POP löscht Operanden der Stapelspitze)<br />

FICOMP mem Differenz ST – Speicheroperand und POP "<br />

FCOMP ST(i) Differenz ST – Stapeloperand i und POP, ST geht verloren<br />

FCOMPP Differenz ST – ST(1) und POP und POP, beide Operanden gehen verloren<br />

FTST Differenz ST – 0.0: verändert Bedingungsbit C3 und C0<br />

FXAM Untersuche Operanden in Stapelspitze ST ( C3, C2, C1, C0 )<br />

Die Bedungungsbit C3 C0 zeigen das Vergleichsergebnis<br />

0 0 ST > 2. Operand<br />

0 1 ST < 2. Operand<br />

1 0 ST = 2. Operand<br />

1 1 nicht möglich<br />

Beispiele:<br />

FCOM ; Vergleiche ST mit ST(1)<br />

FCOM ST(5) ; Vergleiche ST mit ST(5)<br />

FCOM DWORD PTR[0200] ; Vergleiche ST mit 4-Byte-Realwert in DS:200<br />

Beispiel für Auswertung der Bedingungsbit im Bedingungscodefeld des FPU-Statuswortes mit 80x86-Befehlen<br />

FCOMxx op ; beliebiger Vergleichsbefehl<br />

FSTSW [0200] ; FPU-Statusregisterinhalt in den Arbeitsspeicher nach DS:200<br />

MOV AX,[200] ; AX mit FPU-Statusregisterinhalt laden<br />

SAHF ; speichere AH in das Bedingungsregister, dem Low-Teil des Statusregisters<br />

Jxx ziel ; Auswertung der Bedingungsbits durch bedingte Sprungbefehle

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!