Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 13.01.2014, 17:19 Titel: Float-ASM |
|
|
Hallo, guten Tag.
Wie kann ich bitte dieses umsetzen damit es läuft mit Freebasic?
Danke.
Gruss
Code: |
Asm
.data
v0 dq 13.5
g dq 9.81
einhalb dq 0.5
t dq 1.3
Hoehe dq ?
.code
finit
fld t ' t in st(0)
fst st(1) ' Kopie nach st(1)
fmul g ' st(0)=g*t
fmul einhalb ' st(0)=0.5*g*t
fsubr v0 ' st(0)=v0 - 0.5*g*t
fmulp st(1),st(0) ' st(1)=st(1)*st(0), pop
fstp Hoehe ' zurueckschreiben
End Asm
|
|
|
Nach oben |
|
 |
Elor
Anmeldungsdatum: 12.07.2013 Beiträge: 205 Wohnort: Konstanz
|
Verfasst am: 13.01.2014, 19:29 Titel: |
|
|
Hallo,
versuch mal die Variablen ausserhalb des ASM-Blocks zu definieren. Ausserdem muessen die Variablen geklammert werden und es ist auch der entsprechende Pointer-Type anzugeben, also fuer Double = qword, Single dword usw.
Beispiel:
Code: |
Dim As Double t= 1.3, v0= 13.5, g= 9.81, einhalb= 0.5, Hoehe
Asm
'.data
'v0 dq 13.5
'g dq 9.81
'einhalb dq 0.5
't dd 1.3
'Hoehe dq ?
'.code
finit
fld qword Ptr [t] ' t in st(0)
fst st(1) ' Kopie nach st(1)
fmul qword Ptr [g] ' st(0)=g*t
fmul qword Ptr [einhalb] ' st(0)=0.5*g*t
fsubr qword Ptr [v0] ' st(0)=v0 - 0.5*g*t
fmulp st(1),st(0) ' st(1)=st(1)*st(0), pop
fstp qword Ptr [Hoehe] ' zurueckschreiben
End Asm
|
|
|
Nach oben |
|
 |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 14.01.2014, 15:50 Titel: |
|
|
jup, danke.
So funktioniert es.
Ich dachte man konnte MASM-Konform übernehmen.
Gruss |
|
Nach oben |
|
 |
micha
Anmeldungsdatum: 09.12.2005 Beiträge: 72
|
Verfasst am: 15.01.2014, 03:21 Titel: |
|
|
Code: | Asm
.intel_syntax noprefix
.data
v0: .float 13.5
g: .float 9.81
einhalb: .float 0.5
t: .float 1.3
Hoehe: .float 0.0
.text
fld dword ptr [t] ' t in st(0)
fst st(1) ' Kopie nach st(1)
fmul dword ptr [g] ' st(0)=g*t
fmul dword ptr [einhalb] ' st(0)=0.5*g*t
fsubr dword ptr [v0] ' st(0)=v0 - 0.5*g*t
fmulp st(1),st(0) ' st(1)=st(1)*st(0), pop
fstp dword ptr [Hoehe] ' zurueckschreiben
End Asm |
|
|
Nach oben |
|
 |
|