Forum: Sonstige Fragen zu Delphi
by himitsu,
19. Nov 2011
Der Grund ist ganz einfach:
OK, wenn man die schleife abbricht, dann hat die Variable diesen letzten Wert, aber wie ist das, wenn die Schleife sich ordentlich beendet?
Hat die dann den letzen Wert
- erst prüfen, dann weiterzählen und danach zurückspringen
- erst prüfen, dann zurückspringen und danach weiterzählen :gruebel:
oder ist sie da schon weiter?
- weiterzähen, prüfen ob noch im...
Forum: Sonstige Fragen zu Delphi
by himitsu,
18. Nov 2011
Der Compiler nimmt, hierfür das, wo er meint das sei noch frei und eigne sich gut dafür.
ECX ist zwar oftmals das Counter-Register, aber es ist nicht zwingend vorgeschrieben.
(das Assemblerbefehl LOOP nutzt zwar dieses Register, aber Delphi nutzt das langsame LOOP eh nicht)
Jenachdem was frei ist, nutzt Delphi EAX, ECX, EDX oder doch ein Plätzchen auf'm Stack.
EBX nutzt Delphi eher...
Forum: Sonstige Fragen zu Delphi
by himitsu,
18. Nov 2011
Wobei der Compiler ja auch intelligent genug sein könnte, um zu erkennen, daß die Variablen nicht gleichzeitig verwendet werden
und würde dann den selben Speicher für Beide gemeinsam nutzen.
Forum: Sonstige Fragen zu Delphi
by himitsu,
18. Nov 2011
Tja, die Gründe wurden ja schon genannt. :-D
aber die korrekten Lösungen:
Wie es schon gesagt wurde, den Wert irgendwo speichern, bevor die Schleife verlassen wird.
stattdessen z.B. eine While-Schleife verwenden.