Deutsch
Forum

Warum schmiert diese Demo ab?

 

funkheld
Diese nProc ist eine Demo von XPSE.
Gruss
 {$CLEQ}
Declare  b!,c!
b!=3.14
c!=ArcSin2(b!)
End

nProc ArcSin2

    Parameters a!
    //Formel welche unten umgesetzt wird: arctan(a!/Sqrt(-a!*a!+1.0))
    mov eax,addr(a!)
    push eax
    fld qword ptr [eax]
    fmul qword ptr [eax]
    fsubr qword ptr __xeTF_00//__xeTF_00 Konstante für 0.0
    fadd qword ptr __xeTF_01//__xeTF_00 Konstante für 1.0
    fsqrt
    fdivr qword ptr [eax]
    fld1
    fpatan
    pop eax
    fstp qword ptr [eax]
    return a!

endproc

 
30.11.2014  
 



Habe ich wohl etwas übersehen, durchschaue ich jetzt nicht auf Anhieb.

Worum genau gehts Dir eigentlich? Magst Fließkommaoperationen in Assembler schreiben?
 
30.11.2014  
 




funkheld
Ja..., das möchte ich.

Gruss
 
01.12.2014  
 



Habs nicht aus den Augen verlogen, schaue hin und wieder drüber worans liegen könnte.
 
02.12.2014  
 



So ists besser:
KompilierenMarkierenSeparieren
nProc ArcSin2

    Parameters a!
    //Formel welche unten umgesetzt wird: arctan(a!/Sqrt(-a!*a!+1.0))
    mov eax,addr(a!)
    finit
    fld qword ptr [eax]
    fmul qword ptr [eax]
    fsubr qword ptr __xeTF_00//__xeTF_00 Konstante für 0.0
    fadd qword ptr __xeTF_01//__xeTF_00 Konstante für 1.0
    fsqrt
    fdivr qword ptr [eax]
    fld1
    fpatan
    fstp qword ptr [eax]
    wait
    return a!

endproc


Funktionierts?
 
02.12.2014  
 




Michael
W.
Die umgesetzte Formel ist:
arctan(a / Sqrt(0.0 - (a * a) + 1.0))

Minus a bekommt man durch "fchs" zustande.
Pi gibts mittels "fldpi"

Quelle nenn' ich auch noch: [...] 
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
03.12.2014  
 




Michael
W.

KompilierenMarkierenSeparieren
nProc ArcSin2

    Parameters a!
    //Formel welche unten umgesetzt wird: arctan(a!/Sqrt(-a!*a!+1.0))
    mov eax,addr(a!)
    finit
    fld qword ptr [eax]
    // ergibt: a
    fchs
    // ergibt: -a
    fmul qword ptr [eax]
    // ergibt: -a * a
    fld1
    // ergibt: 1.0  ---  -a * a
    faddp st(1)
    // ergibt: -a * a + 1.0
    fsqrt
    // ergibt: Sqrt(-a * a + 1.0)
    fdivr qword ptr [eax]
    // ergibt: a / Sqrt(-a * a + 1.0)
    fld1
    // ergibt: 1.0  ---  a / Sqrt(-a * a + 1.0)
    fpatan
    // ergibt: ArcTan(a / Sqrt(-a * a + 1.0))
    fwait
    // fwait  statt wait
    fstp qword ptr [eax]
    return a!

endproc

 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
03.12.2014  
 



Selbst wenn man:

{$pushkeyword fchs,faddp,st1}

schreibt um diese Schlüsselworte als "bekannt" zu deklarieren,
dann meckert jwasm:

Objektcode: TEST.asm(166) : Error A2054: Invalid instruction o
perands

Warnung: Fehler im Assembler.


Kann jetzt aber viele Ursachen haben.
 
03.12.2014  
 




Michael
W.
Hauptursache ist wohl, das es im Original St(1) heißen muss. Da hatte ich mich von der Farbgebung wohl in die Irre führen lassen.
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
03.12.2014  
 




funkheld
Jup danke.

[15:11:11] Warnung: undeklariert : FADDP
[15:14:13] Naehe: ~14, 'FADDP ST1'

Irgendwie werden die als Variable missbraucht von XPSE.

Gruss
 
03.12.2014  
 




funkheld
Diese läuft jetzt durch ohne Fehler.
Aber ich verstehe wohl das Printen nicht mit XPSE.

Es wird geprintet : Nan

Danke.
Gruss
KompilierenMarkierenSeparieren
 {$CLEQ}
Declare  a!,b!
a!=3.14
b!=ArcSin2(a!)
Print b!
WaitInput
End

nProc ArcSin2

    Parameters a!
    //Formel welche unten umgesetzt wird: arctan(a!/Sqrt(-a!*a!+1.0))
    mov eax,addr(a!)
    finit
    fld qword ptr [eax]
    fmul qword ptr [eax]
    fsubr qword ptr __xeTF_00//__xeTF_00 Konstante für 0.0
    fadd qword ptr __xeTF_01//__xeTF_00 Konstante für 1.0
    fsqrt
    fdivr qword ptr [eax]
    fld1
    fpatan
    fstp qword ptr [eax]
    wait
    return a!

endproc

 
03.12.2014  
 



Das NaN not a number gibt xprofan aus vlt. bei "ungültigen?" Fließkommawerten.
 
03.12.2014  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

22.834 Betrachtungen

Unbenanntvor 0 min.
Gast.0815 vor 11 Tagen
funkheld30.12.2021
p.specht19.09.2018
E.T.12.04.2018
Mehr...

Themeninformationen

Dieses Thema hat 4 Teilnehmer:

iF (14x)
funkheld (10x)
Michael W. (6x)
RGH (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie