Einzelnen Beitrag anzeigen

CarstenP

Registriert seit: 4. Aug 2006
Ort: Dortmund
8 Beiträge
 
#1

asm-Befehler innerhalb eines Delphi Programmes

  Alt 11. Dez 2006, 14:52
Hallo!

Ich versuche im Moment für GLscene den Q3 RSqrt Source in Assembler zu übertragen. Ich habe dabei die Gelegenheit zu lernen wie man moderne CPUs in Assembler programmiert.

Zum Lernen versuche ich die Beispiele auf dieser Webseite in eine kleine Assemblerfunktion zu übernehmen.

Aber dort scheitere ich auch schon.

Ich würde gerne mit fld oder fild einen simplen Float Wert (0.5) in den Fliesskommastack einladen, um dort weitere Berechnungen mit Variablen auszuführen.

Aber egal wie ich es anstelle

fld 0.5
fild 0.5
fld (0.5)
fild (0.5)
fild dword 0.5
fld st(0.5)

ich bekomme ständig die Fehlermeldung Ungültige Kombination von Opcode und Operanden bzw. Inline Assembler Syntaxfehler.

Anscheinend kann ich fld bzw fild nur mit st(GANZZAHL) "füttern". Ich könnte ja jetzt einfach die Fünf in den stack packen, die 10 in den Stack packen, und dann dividieren, aber das wäre ja nicht sonderlich klug.

Nun bin ich aber nicht sehr sicher was st() macht, und wie ich meine Fliesskommawerte (zB 0.5) in den fliesskommastack bekomme.

EDIT: Da habe ich ja ein Eigentor geschossen. st ist wohl anscheinen einfach ein Wert im Stack. Werte kann ich damit nicht "einlesen".

Über jede Information zu diesem sehr speziellen Thema würde ich mich freuen.

mit freundlichen Grüßen,
Carsten
  Mit Zitat antworten Zitat