Fließkommazahlen mit der FPU berechnen
Ergebnis einer Fließkommaberechnung liegt nur als Integer vor...
Hallo,
auch wenn ich nicht viel Hoffnung habe das hier jemand antwortet, hier mal meine Frage.
Ich lege 2 Zahlen auf den FPU Stack ab (2.5 und 4.0)
Nach einer Multiplikation erhalte ich auch als Ergebnis 10.
Sobald ich aus der 4.0 eine 4.5 mache, erhalte ich genau 11... (11.25 ist das genaue Ergebnis)
Nun habe ich in meinem Buch stehen daß das Komma im Exponenten abgelegt wird und der eigentliche Zahlenwert in der Mantisse steht.
Sollte die Mantisse dann nicht den Wert 1125 und der Exponent (16bit groß) den Wert 2 haben?
Weiß jemand wie man das 80bit Ergebnis ausliest das ich wie oben auf meine 11.25 komme?
Nicky
hier noch der Code für FPU:
zahl1 ist 4.5 und zahl2 ist 2.5. Das Ergebnis der Multiplikation wird am Ende wieder nach zahl1 geschrieben, die ich dann ausgeben möchte.
fld zahl1
fld zahl2
fmul
fist zahl1
wait
Hallo,
auch wenn ich nicht viel Hoffnung habe das hier jemand antwortet, hier mal meine Frage.
Ich lege 2 Zahlen auf den FPU Stack ab (2.5 und 4.0)
Nach einer Multiplikation erhalte ich auch als Ergebnis 10.
Sobald ich aus der 4.0 eine 4.5 mache, erhalte ich genau 11... (11.25 ist das genaue Ergebnis)
Nun habe ich in meinem Buch stehen daß das Komma im Exponenten abgelegt wird und der eigentliche Zahlenwert in der Mantisse steht.
Sollte die Mantisse dann nicht den Wert 1125 und der Exponent (16bit groß) den Wert 2 haben?
Weiß jemand wie man das 80bit Ergebnis ausliest das ich wie oben auf meine 11.25 komme?
Nicky
hier noch der Code für FPU:
zahl1 ist 4.5 und zahl2 ist 2.5. Das Ergebnis der Multiplikation wird am Ende wieder nach zahl1 geschrieben, die ich dann ausgeben möchte.
fld zahl1
fld zahl2
fmul
fist zahl1
wait
Please also mark the comments that contributed to the solution of the article
Content-ID: 168434
Url: https://administrator.de/contentid/168434
Printed on: October 4, 2024 at 04:10 o'clock
3 Comments
Latest comment
Hallo supernicky!
Mit
bekommst Du nur Ganzzahlen und keine Fließkommazahlen geliefert.
Mit
bekommst Du den Fließkomma-Wert im BCD-Format geliefert. Zum umwandeln ist der Befehl 'AAM' von nutzen.
Gruß Dieter
PS. Der Buffer muss die Größe QWord (64-Bit) oder TByte (80-Bit) haben.
Mit
FIST |
Mit
FBSTP Buf |
Gruß Dieter
PS. Der Buffer muss die Größe QWord (64-Bit) oder TByte (80-Bit) haben.
Hallo Nicky!
Nö, Byteweise in AL.
AAM splittet die Einer nach AL und die Zehner nach AH
Gruß Dieter
Nö, Byteweise in AL.
mov AL, byte ptr Buf[x]
aam
Gruß Dieter