Willkommen
Gast
. Bitte
einloggen
oder
registrieren
.
Haben Sie Ihre
Aktivierungs E-Mail
übersehen?
08. September 2010, 00:17:13
Übersicht
Hilfe
Suche
Einloggen
Registrieren
CodeForum.ch
Code Foren
Assembly
Thema: Arbeiten mit Float-Zahlen
Seiten: [
1
]
« vorheriges
nächstes »
Antworten
Drucken
Autor
Thema: Arbeiten mit Float-Zahlen (Gelesen 1319 mal)
Kostja
Gast
Arbeiten mit Float-Zahlen
«
am:
04. Februar 2004, 14:49:02 »
Zitat
Ändern
Löschen
Hi,
kann vielleicht einer ein Stück Assembler-Programmcode posten dem man die Handhabung von Float-Zahlen entnehmen kann.
Ich habe nämlich folgendes Problem:
Wenn ich eine Float-Zahl in das EAX-Register schiebe und den Inhalt des Registers sofort wieder ausgebe (d.h. ohne Operationen auf dieses Register angewandt zu haben), dann funktioniert alles. Wenn ich aber z.B. eine Zahl zu dem Register dazu addiere, dann stimmt das Ergebnis nicht mehr.
Ich habe au??erdem irgendwo aufgeschnappt, das, es bei den alten Prozessoren eine FPU speziell für die Arbeit mit Float-Zahlen gab, diese soll bei den neueren Prozessoren in die CPU integriert worden sein. Ist das so richtig? Gibt es dann trotzdem spezielle Register und Operatoren für die FPU?
Moderator informieren
Gespeichert
Micev
oft hier
Offline
Beiträge: 121
Arbeiten mit Float-Zahlen
«
Antworten #1 am:
04. Februar 2004, 19:00:21 »
Zitat
http://groups.google.ch/groups?hl=de&lr=&ie=UTF-8&oe=UTF-8&threadm=6mvrr2%24s4d%40cs1.FTA-Berlin.de&rnum=11&prev=/groups%3Fq%3Dfadd%2Bgroup:de.comp.lang.assembler.x86%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26group%3Dde.comp.lang.assembler.x86%26start%3D10%26sa%3DN
Moderator informieren
Gespeichert
My PC is My Home and I am the Lord of my Home.
Ich suche stets nach dem Guten in mir Selbst.
Niemand ist so Gut das nichts Schlechtes und niemand ist so Schlecht das nicht Gutes in ihm Steckt.
Je besser ich werde desto WERTVOLLER bin ICH.
HL
fast Mitglied
Offline
Beiträge: 37
Arbeiten mit Float-Zahlen
«
Antworten #2 am:
09. Februar 2004, 14:38:04 »
Zitat
floating point zahlen musst du im coprocessor rechnen, da normale cpu register nur ganze zahlen enthalten können. diese befehle sehen etwa so aus: fmul, fidv, fadd, fsub etc..
hier sind ein paar erklärungen in englisch:
Fld real8 ptr [ebx]
This command loads an double real from ds:ebx into the register at wich the TOS points. Before this operation the TOS is decremented. So all registers are moved one position down and the last register (in our example Reg2) comes to position 0. The double real is saved in Reg2.
Fst real8 ptr [ebx]
This command is the contrary to Fld. It saves a double real at address ds:ebx. Only the TOS is not changed.
Fstp real8 ptr [ebx]
This is the same like Fst. But the TOS is incremented (the p stands for "pop"). After this operation the TOS points at the next register. Mostly after a saving of a number we don't need this number in a register again.
Fadd, Fsub, Fmul, Fdiv
It is complete the same like Add, Sub, Mul, Div. But the condition is that one operand must be the TOS (TOS --> ST(0)).
For example: Fadd ST(3),ST(0).
um das ganze in softice anzuschauen gibst du einfach "wf" ein. TOS bedeutet top of stack.
Moderator informieren
Gespeichert
Seiten: [
1
]
Antworten
Drucken
CodeForum.ch
Code Foren
Assembly
Thema: Arbeiten mit Float-Zahlen
« vorheriges
nächstes »
Gehe zu:
Bitte wählen Sie ein Ziel:
-----------------------------
Code Foren
-----------------------------
=> HTML
=> JavaScript
=> Flash
=> PHP
===> PHP Tutorials & Beispiele
=> ASP
=> SQL
=> XML
=> Perl
=> Java
=> Visual Basic
=> C / C++
=> C#
=> Delphi
=> Assembly
=> DirectX
=> ABAP
-----------------------------
Andere Foren
-----------------------------
=> Veröffentlichungen
=> Feedback / Fragen
=> Test Forum
-----------------------------
User Projects
-----------------------------
=> pdf2anything
-----------------------------
c-worker.ch Foren (Partner Site)
-----------------------------
=> Text Db API
=> Winsock Tutorials [geschlossen]
-----------------------------
Administrative Foren
-----------------------------
=> News
News
Keine News zur Zeit
Partner Sites
Werbung
TinyPortal v1.0.5 beta 1©
Bloc
Lade...