Hallo Besucher, der Thread wurde 1,9k mal aufgerufen und enthält 7 Antworten

letzter Beitrag von BastetFurry am

Fließkomma-Zahlen ???

  • assemble (8086)


    kann jemand mir sagen, wie man das Programm schreiben, dass 2 Fließkomma-Zahlen addiert (4 Stellen ganzzahliger Teil, 4 Stellen Nachkommastellen,
    Beispiel : aaaa,bbbb + cccc,dddd)
    Ausgabe im Format: xxxx,yyyy


    Wenn möglich auch mal die Theorie erläutern. :-)

  • Du kanst den BASIC-Interpreter benutzen:


    Der eine Summand kommt in den FAC


    $61 Exponent
    $62 Mantisse 1
    $63 Mantisse 2
    $64 Mantisse 3
    $65 Mantisse 4
    $66 Vorzeichen


    der andere in den FAC#2 (ARG)


    $69-$6d respektive


    Die einzelnen Fließkomma-Routinen des Interpreters sind dann bei


    Addition: $b86a
    Subtration $b853
    Multiplikation: $ba2b
    Division: $bb12
    Potenz: $bf7b


    aufzurufen.


    zur Theorie dazu:


    Bsp. 0,7


    wird dargestellt als 0,7*10^0


    Mantisse: 0,7
    Exponent: 0


    nun wird diese Zahl normalisiert, d.h. die Mantisse soll einen Wert zw. 0 und 9 annehemen, dazu kann das Komma verschoben werden, wenn man gleichzeitig den Exponent erhöht bzw. erniedrigt. In diesem Fall muss das KOmma eine Stelle nach rechts, und entspr. der Eponent erniedrigt werden:


    7*10^-1


    Somit lässt sich jede Zahl durch Exponent und Mantisse (und impliziert Basis=10) (mehr oder weniger) eindeutig bestimmen.


    Das ganze lässt sich nun auf die Binäre Logik übertragen indem man statt mit Zehnerexponenten mit Zweierexponenten rechnet.


    Für die Mantisse werden vom BASIC-Interpreter 4 Byte vorgesehen für den Exponmenten 1 Byte und zusätzlich ein Byte für's Vorzeichen.


    Also ich kann dir mal einen entsprechenden Abschnitt aus einem Buch scannen,wo das ganz gut erklärt wird, wenn du magst, ich kriegs grad auch nicht so ganz genau hin.
    Angebilich sind die Fließkommaroutinen des BASIC-Interpreters auch nicht so das gelbe vom Ei, aber mangels anderer Alternativen...

  • Das klingt wirklich ein wenig nach Wintel ;)
    Hmm, hat die x87 nicht schon Befehle für Fließkomma?
    Wenn nach der RCC noch keine Lösung für den jungen gefunden wurde wälz ich mich mal durch mein dickes x86 Assembler-Buch.
    Tip für Threadstarter: Eigentlich gehts in diesem Forum um C64er und Konsorten ;)
    Also setzt wenigstens ein [x86] vor deinem Beitragsthema, ansonsten geht hier jeder erstmal von 6502 aus.


    lg
    Priss

  • ooops, ja da scheint wieder eine "falsch" abgebogen zu sein in unser 8bitter Forum... zum Glück hab ich gestern nacht nich noch angefangen die 20 Seiten zu scannen... ;)
    Wobei das Kapitel wirklich ganz interessant ist mit den Fließkommazahlen.... btw: es heisst ja immer wieder daß die Fließkommaroutinenen des BASIC-Interpreters sehr bescheiden seien... gibts da andere Lösungen, hat jemand eigene geschrieben...? Das Thema an sich ist ja wirklich schon recht spannend.