Hi Sebastian,
wenn du
SwapBytes als Methode definierst, steht im Register EAX der Zeiger auf die aktuelle Instanz, das eigentliche Argument
Source wird im Register EDX übergeben. Das Tauschen ist aber unabhängig von der Klasse, deshalb würde ich es als einfache Funktion definieren:
Delphi-Quellcode:
function SwapBytes (Source: DWORD): DWORD;
asm
// This is not written as mnemonics to be compatible with D4!
db 0Fh, 0C8h
// "bswap EAX" can only be executed on 486+!!!
end;
Gruß Hawkeye