Delphi XE3で64ビットインラインアセンブラを使用してこの問題が発生しましたが、理解できません。
これを試してみましたが、32ビットと64ビットの両方で動作します
function test(a, b: integer): integer; assembler; register;
asm
mov eax, a
add eax, edx
end;
ただし、これは32ビットでのみ機能し、64ビットでは機能しません。64ビットではコンパイルされますが、2つの整数の合計の正しい結果は返されませんでした。
function test(a, b: integer): integer; assembler; register;
asm
add eax, edx
end;
FLDなどの以前のFPUコードは知っていますが、STPは32ビットで動作しますが、64ビットコンパイラではコンパイルエラーが発生します。64ビットで浮動小数点数を処理する方法はありますか?