Assembly-Code fsqrt und fmul Anweisungen
Ich versuche zu berechnen1.34 *sqrt(lght)
in dieser Funktion mit Inline-Assembly, aber ich erhalte Fehler wie:
'_ asm' nicht deklariert (erstmalige Verwendung in dieser Funktion) Jede nicht deklarierte Kennung wird nur einmal für jede Funktion gemeldet, in der sie erwartet wird. ';' vor '{' token
Ich habe nachgeforscht, wie ich dieses Problem lösen kann, finde aber nicht viele Informationen. Kann jemand einen Weg vorschlagen, um dies zum Laufen zu bringen?
Mein Code ist:
double hullSpeed(double lgth) {
_asm {
global _start
fld lght; //load lght
fld st(0); //duplicate lght on Top of stack
fsqrt;
square root of lght
fld st(0); //load square result on top of stack
fld 1.34; //load 1.34 on top of stack
fld st(i);
duplicate 1.34 on TOS
fmulp st(0), st(i); //multiply them
fst z;
save result in z
}
return z; // return result of [ 1.34 *sqrt(lght) ]
}