Мой проект в Delphi 10.1 имеет некоторые функции сборки, как это:Дельфи ASM код win32 против Win64
function MyFunc: Word;
asm
PUSH 0
FNSTCW [ESP].Word
POP EAX
end;
Мне нужно скомпилировать проект в Win64, но некоторые линии, как POP EAX
имеет E2116 Invalid combination of opcode and operands
Error.
Используйте функцию Get8087CW из системного блока, она должна работать нормально для обеих платформ (Win32/Win64). –
x86_64 не поддерживает 32-битный push/pop –
Обратите внимание, что x86 и x64 используют разные имена регистров в своем соглашении о вызове и часто разные коды операций. Строго рассмотрите совет @ Андрея Галатына, потому что вам придется (по крайней мере) дублировать все функции. – Caleth