Fehler in Assembler-Programm (PI Berechnung mit 32-Bit Registern) |
29.06.2014, 14:36 | Auf diesen Beitrag antworten » | ||||||||||
Romi | Fehler in Assembler-Programm (PI Berechnung mit 32-Bit Registern) Hallo Forum, ich möchte mit meinem Assembler-Unterprogramm PI nach Wallis berechnen, also mit der FPU eine Reihe von Multiplikationen und Divisionen durchführen. Pi/2 = (2/1)*(2/3)*(4/3)*(4/5)*(6/5)usw. Ein Zyklus besteht bei mir aus 2 Multiplikationen und 2 Divisionen. Das Ergebnis soll in EDX:EAX stehen und von dort mit einer anderen Unterprozedur ausgegeben werden (die funktioniert). Ich finde einfach meinen Fehler nicht... und meine hiesige dosbox (läuft in einer virtual machine WINXP)gibt mir einen "phase-error between passes", auf einen anderen Rechner wiederum ist es kompilierbar und gibt ein einziges zeichen solange aus, bis die dosbox abstürzt... hat vielleicht jemand eine Idee, was ich nicht bedacht haben könnte? Oder was ich falsch verstanden habe? Vielen Dank schon einmal im Voraus...
(die Ausgabeprozedur habe ich mal nicht hier hereinkopiert)
|
||||||||||
|
|||||||||||
30.06.2014, 11:58 | Auf diesen Beitrag antworten » | ||||||||||
Pascal |
Nach Ausführung des Unterprogramms steht in EDX:EAX die Adresse des Ergebnisses. |
||||||||||
03.07.2014, 20:55 | Auf diesen Beitrag antworten » | ||||||||||
Romi |
Unpräzise formuliert, das stimmt - ich meinte die Adresse. Fehler ist aber trotzdem gefunden: die Reihenfolge ist hier ausschlaggebend. Falsch: .386 .MODEL SMALL Richtig ist: .MODEL SMALL .386 |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |