Hi,
Ich habe eine (funktionierende! *freu*)
asm-Schleife.
Am ende dieser Schleife möchte ich immer in ein Array den Wert eine bestimmten Indexes erhöhen.
Also zB Inc(Arr[5]);
Zusätzlich muss jedesmal geprüft werden ob der Array schon so lang ist und gegebenenfalls den Array verlängern.
Mein Versuch:
Delphi-Quellcode:
var Res: TResult;
procedure SetLn(Ar: TResult; Cnt: Integer);
begin
SetLength(Ar,Cnt);
end;
asm
// ... Schleife ...
CMP ECX,EDX
//Akt Anzahl und Array-Länge
JB @arrwrite
//Index < Länge => Sofort Schreiben
MOV EAX,Res
//Parameter setzen
MOV EDX,ECX
CALL SetLn
//Leichte Probleme SetLength direkt aufzurufen, daher ein "Dummy"
@arrwrite:
ADD [EAX+8*ECX],1
//Reinschreiben
end;
Das Problem: anscheinend Funktioniert das SetLn nicht richtig...
Denn der Array hat nach wie vor die Länge 0
Hat irgendwer eine idee warum? (In SetLn kommen die Were richtig an!)