我在Delphi 10.1中的项目有一些这样的汇编函数:
function MyFunc: Word;
asm
PUSH 0
FNSTCW [ESP].Word
POP EAX
end;
我需要在win64中编译项目,但像POP EAX
这样的行有E2116 Invalid combination of opcode and operands
错误。
答案 0 :(得分:3)
您应该使用System
单位中的Get8087CW()
函数,而不是将程序集翻译为x64。它应该适用于两个平台(Win32 / Win64):
function MyFunc: Word;
begin
Result := Get8087CW;
end;
为了将任何其他汇编代码(这里没有提供)从x86转换为x64,我建议您学习x64汇编编程。