Floatwerte ohne div (intel8086)

Neue Frage »

Auf diesen Beitrag antworten »
Stefan Floatwerte ohne div (intel8086)

Meine Frage:
Hallo Leute,
Ich habe eine Frage an euch aus dem Gebiet der Technischen Informatik.
Wir beschäftigen uns zurzeit mit dem intel(8086).
Im genaueren geht es dabei um die Division von zwei Float-Werten.
Normalerweise würde ich dafür die FPU des 8086 verwendet und dabei mit dem Befehl fdiv arbeiten.
Nun stell ich mit aber die Berechnung mit diesem Befehl sehr ineffizient vor.
Gibt es eine effiziente Möglichkeit float-Werte zu dividieren ohne einen fdiv-Befehl zu verwenden?

Meine Ideen:
In der normalen ALU welche mit ganzzahligen Werten rechnet würde ich das ganze über einen einfachen Algorithmus lösen, der mit Schiebebefehlen und Subtraktion arbeitet.

Es gibt zwar in der FPU auch einen Subtraktionsbefehl (fsub) aber keine Möglichkeit das Register zu verschieben(würde bei einem Float auch keinen Sinn ergeben, da dieser in Mantisse und Exponent unterteilt ist).
Weiter könnte man natürlich die Mantissen und Exponenten getrennt betrachten, indem man diese mit einer Bitmaske extrahiert und sie in der ALU verrechnen... aber das müsste doch ineffizienter sein oder?

Ich erwarte hier auch keine fertige Lösung oder ähnlichen sondern evt nur ein paar neue Blickwinkel.
Vielen dank für eure Hilfe smile
 
Auf diesen Beitrag antworten »
eulerscheZahl

Du wirst es wohl nicht schaffen, die Berechnung schneller durchzuführen, als die Hersteller der CPU selbst.

In welchem Bereich bewegen sich die Zahlen denn? Brauchst du wirklich Gleitpunktzahlen, oder würden es auch Festpunktzahlen tun? Dann könntest du mit Ganzzahlen rechnen und immer so tun, als wären z.B. die letzten 8 Bit der Nachkommaanteil.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »