Diesen doch schon etwas älteren Algorithmus nutzen wir noch in unserer Software. Aktuell versuchen wir unsere Software auf 64-Bit umzustellen.
Die Low-Level Routinen sind ja alle in Assembler geschrieben. Ist jemandem vielleicht sogar eine Delphi anstatt Assembler Implementierung bekannt
Nein zumal LZSS Implementierung nicht gleich LZSS Implementierung sein muss und daher unklar ist was hier in Assembler geschrieben wurde.
Oder was genau ist zu beachten bei der Portierung des Assemblers (außer die Register selber)?
Die Aufrufkonventionen unterscheiden sich - sprich es werden andere Register für die Parameter verwendet. Bei 32-bit werden die ersten drei Parameter in den Registern EAX, EDX und ECX übergeben und bei 64-bit die ersten vier in den Registern RCX, RDX, R8 und R9.
Inline Assembler geht nicht
Delphi-Quellcode:
procedure Foo(AValue: Integer);
begin
if AValue = 1
then
asm
nop
end;
end;
Es sind nur reine Assembler und reine Delphi Language Methoden möglich.