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) ]
   }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage