chibi-fighter
Goto Top

for Schleife in Assembler

Assembler im Simulator

Hallo Leute!

Wir haben in der Schule kurz das Thema Assembler gestreift und sonst aber leider nichts weiter mehr dazu gemacht.
Also hab ich mir nen CPU Simulator besorgt und will da jetzt versuchen "einfaches" Assembler zu lernen.

Und da würde mich interessieren wie ich z.B mit einfachen Befehlen eine for-SChleife programmieren kann.
Der Simulator kann nur wenige Befehle:
LOAD, STORE, JUMP, JUMPZ, AND, ADD, COMP, RSHIFT

und mit denen möchte ich eben eine for-Schleife basteln. Dass sie z.B einfach Zahlen von Startwert (zB 0) bis Endwert(zB 10) durchzählt.
Ich würd also den Start- und Endwert Laden (LOAD) aber dann die Frage- wie die Schleife?
Eigentlich also eine leere for-SChleife aber eben die Laufvariable immer um eins erhöhen und vergleichen ob der Endwert erreicht ist. Das wäre mal mein Gedanke. Den Zwischenraum kann ich dann ja noch füllen. Mir wärs jetzt in erster Linie mal wichtig zu wissen wie ich mit diesen Befehlen eine Schleife hinbekomme.

Danke schon mal für eure Hilfe

Chibi-Fighter

14c5f120b4c8f400e0b1ea5c78de3f90-cpusimulator

Content-Key: 98249

Url: https://administrator.de/contentid/98249

Printed on: April 24, 2024 at 19:04 o'clock

Member: godlie
godlie Oct 01, 2008 at 11:40:54 (UTC)
Goto Top
Hallo

bin gad durch stöbern auf nen crash kurs gestoßen

http://ivs.cs.uni-magdeburg.de/bs/lehre/sose99/bs1/seminare/assembler.s ...

dort wird auch die FOR - Schleife behandelt,

           mov ecx,100
schleife:  add eax,[a] ; das hier ist der Abarbeitungsteil
           loop schleife
Member: nxclass
nxclass Mar 26, 2009 at 21:51:43 (UTC)
Goto Top
Ich würde den Zähler mit COMP prüfen (sollte wie eine Subtraktion funktionieren wobei nur Flags gesetzt werden) dann mit JUMPZ aus der Schleife rausspringen (wenn das Zero Flag gesetzt wurde) und danach an den Anfang der Schleife zurückspringen.
LOAD AC 0
...
ADD AC 1
COMP AC 10
JUMPZ *Raus aus der Schleife*
JUMP *An den Anfang der Schleife*

(hoffe das entspricht etwa deinem Syntax ...)