Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: FOR-Schleifenvariable muss eine lokale Variable sein. Wa

  Alt 23. Aug 2003, 20:12
Moin sakura,

fällt Dir eine Konstellation ein, bei der die Schleifenvariable in ECX liegt?

Ich hab's gerade noch einmal ausprobiert:

Fall 1 Optimierung ist ausgeschaltet:
Verwende ich i innerhalb der Schleife um den Wert ausgeben zu lassen (ShowMessage(IntToStr(i))), wird i in EBX gespeichert, weise ich i einer anderen Variablen zu, dann in EAX.
Wenn i innerhalb der Schleife nicht verwendet wird, dann liegt der Wert nur auf dem Stack und wird dort geändert und verglichen.
Interessanter Weise wird der Wert dann immer inkrementiert, und nicht dekrementiert.

Fall 2 Optimierung ist eingeschaltet:
i wird immer in EBX gespeichert. Wenn i nicht verwendet wird decrementiert, ansonsten inkrementiert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat