Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

[asm] In Array schreiben

  Alt 1. Mär 2007, 18:55
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!)
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat