Código de montagem fsqrt e fmul instruções
Estou tentando calcular1.34 *sqrt(lght)
nesta função usando assembly embutido, mas estou recebendo erros como:
'_asm' não declarado (primeiro uso nesta função) cada identificador não declarado é relatado apenas uma vez para cada função que aparece no esperado ';' antes do token '{'
Estive pesquisando como resolver esse problema, mas não consigo encontrar muita informação. Alguém pode sugerir uma maneira de fazer isso funcionar?
Meu código é:
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) ]
}