Moin moin,
erstmal danke für eure Erklärungen. Ich konnte es gestern Abend noch unter einem XE2 testen. Wenn ich allerdings eine x64 Version erstellt habe und diese auf einer x64 CPU ausführe, funktioniert es
nicht wie gewünscht.
Ursache ist wohl, dass bei 64bit der Wert
DW nicht in EAX übergeben wird, sondern in ECX. (Falls diese Erklärung falsch ist, dann korrigiert mich)
Delphi-Quellcode:
function SwapDWord(DW: DWord): DWord;
asm
{$IFDEF CPUX64}
MOV EAX, ECX
{$ENDIF CPUX64}
BSWAP EAX
end;
So hat es jedenfalls auf 32bit wie auch auf 64bit funktioniert.