インラインアセンブリを試してみて、インラインアセンブリに10進数(整数ではなく)を追加しようとしています。問題は、次の関数を呼び出すときです。
inline double ADD(double num1, double num2) {
double res;
_asm{
push eax; push the former state of eax onto stack
mov eax, num1;
add eax, num2;
mov res, eax;
pop eax; restore the former state of eax now that we are done
} return res;}
コンパイラは、インラインアセンブリ(プッシュおよびポップ命令行を除くすべてのアセンブリ行)での不適切なオペランドサイズについて文句を言います。したがって、unsigned longなどの整数型に変更する必要があります。そうすれば機能しますが、もちろん整数型のみをサポートします。小数の結果は四捨五入されます。
8.4のような小数の結果を可能にするアセンブリを追加する方法はありますか?