У меня есть пример исходного кода для OpenGL, я хотел скомпилировать 64-битную версию (используя Delphi XE2), но есть некоторый код ASM, который не удается скомпилировать, и я ничего не знаю об ASM. Вот код ниже, и я поставил два сообщения об ошибках на линиях, которые терпят неудачу ...Код Delphi/ASM несовместим с 64-битным?
// Copy a pixel from source to dest and Swap the RGB color values
procedure CopySwapPixel(const Source, Destination: Pointer);
asm
push ebx //[DCC Error]: E2116 Invalid combination of opcode and operands
mov bl,[eax+0]
mov bh,[eax+1]
mov [edx+2],bl
mov [edx+1],bh
mov bl,[eax+2]
mov bh,[eax+3]
mov [edx+0],bl
mov [edx+3],bh
pop ebx //[DCC Error]: E2116 Invalid combination of opcode and operands
end;
Вам нужно будет написать 64-битную версию ваших инструкций ASM, и используйте '{$ IFDEF WIN64}', чтобы сообщить компилятору, какой набор инструкций ASM использовать для данной целевой платформы. – LaKraven
Спасибо, но ключ в том, что я ничего не знаю о ASM, чтобы знать, как его написать. –
Нашел что-то здесь: http://docwiki.embarcadero.com/RADStudio/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows - он говорит, что «asm не поддерживается в 64-битном XE2» –