Frage zu schleifen
-
Hallo zusammen
Um eine Schleife herunterzuzählen kann ich ja folgenden Code verwenden.mov ecx, 0xA L1: <irgend etwas loop L1
Aber wie macht man das am besten, wenn man eine Schleife hochzählen will?
Mfg Ishildur
-
Einen "besten Weg" gibt es da nicht. Unzaehlige Optimierungsmoeglichkeiten, etc.
Ganz allgemein sind ja solche Schleifen in etwa wie folgt konstruiert:Zaehler=Startwert; Schleife: //irgendwas Zaehler=Next_Zaehler; //meist Zaehler-1 oder Zaehler+1 if not Abbruchbedingung(Zaehler) goto Schleife // meist irgendwas Zaehler</>/=const
Genauso laesst sich das 1:1 auch in Assembler umsetzen.
Dein Beispiel ist praktisch nichts anderes alsecx=0xA; L1: //irgendwas if ecx==0 goto exitL1; ecx=ecx-1; goto L1; exitL1: ...
Die dazu noetigen Befehle sind allg. mov fuer Zuweisungen,
Rechenoperationen (zB. inc, dec, add, sub) fuer den Zaehler
Vergleichsoperationen und bedingte Spruenge (cmp und j(n)b, j(n)a, j(n)e, j(n)l, j(n)g, etc.)
-
Was ich tun möchte, ist einen String zu durchlaufen und zwar vom Anfang bis zum Ende
-
Tja, wie wuerdest du das denn zB. in C machen (mit Char-Pointern)?