Seite 1 von 1

FPU-Wert ändern, aber wie?

Verfasst: 23.08.2005 16:37
von LeoS#PUpDock
Hi,

Ich will für ein Programm den "Division durch null" Fehler ausschalten.
Ich hab dafür auch schon den richtigen FPU-Wert gefunden. Leider aber in einem Delphi-Forum.

Dort wird die Division durch null so ausgeschaltet:

Code: Alles auswählen

CW8087 := Default8087CW;  // Alter Wert merken
Set8087CW(MCW_EM); // Neuer Wert setzen
Um die Division durch null einzuschalten, wird der Cod-Text benutzt:

Code: Alles auswählen

// Alter FPU-Kontrollwert wiederherstellen
Set8087CW (CW8087);
Kann mir da jemand weiterhelfen, wie ich das in PureBasic hinbige?

Re: FPU-Wert ändern, aber wie?

Verfasst: 23.08.2005 17:01
von Deeem2031
Default8087CW kannst du so übersetzen:

Code: Alles auswählen

Procedure.w GetCW()
  !PUSH 0
  !FSTCW [Esp]
  !POP Eax
  ProcedureReturn
EndProcedure
Und Set8087CW so

Code: Alles auswählen

Procedure SetCW(ControlWord.w)
  !PUSH Eax
  !FLDCW [Esp]
  !POP Eax
EndProcedure
Das Einzige was ich nicht weiß ist, wie ich "MCW_EM" übersetzen soll..

Das ist ja schon mal ein anfang...

Verfasst: 27.08.2005 09:24
von LeoS#PUpDock
Das ist ja schon mal ein anfang:mrgreen: .


Jetzt bräucht ich nurnoch den rest...

Verfasst: 27.08.2005 09:38
von ts-soft

Code: Alles auswählen

#MCW_EM = $8001F
:)

Danke

Verfasst: 27.08.2005 09:39
von LeoS#PUpDock
Danke :mrgreen:

So eine Schnelle Antwort hab ich in anderen Foren Nie gekrigt.