PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Felder in Assembler



Asche
09.09.2005, 21:44
Kann man in Assembler Felder anlegen?

(Benutze AVRMega 8 )

olfi13
09.09.2005, 22:12
Nicht daß ich wüßte...
Meinst Du soetwas wie Array's?
Was möchtest Du erreichen?

Asche
09.09.2005, 23:28
ja, ich meine array's

olfi13
10.09.2005, 00:19
Grundsätzlich ist die Verwaltung des Speichers dein Problem beim Assembler.
Erzähl' mal was Du machen willst.

Gruß, olfi

Asche
10.09.2005, 00:44
ich will strings vergleichen. damit ich aber nicht jede variable einzeln vergleichen muss würde ich ein string array erstellen und dann mit einer schleife abfragen. hab leider noch nicht soviel erfahrung mit assembler. hab jetzt hauptsächlich c++ programmiert.

olfi13
10.09.2005, 10:05
Dazu kannst du die "indirekte Adressierung" verwenden, schaue Dir z.B. einmal die Befehle LD, ST an.

Nehme das Z- und das Y-Register, lasse die beiden auf die jeweils erste Speicherstelle zeigen wo sich deine Zeichenketten befinden.

Nun kommt deine Schleife:
Lade die Werte mit LD R16, Z+ und LD R17, Y+ und vergleiche sie miteinander (CP R16, R17),
sind sie ungleich kannst Du den Vergleich abbrechen, sonst nochmal (Verzweigungsbefehle BREQ oder BRNE)
wenn alle Bytes miteinander verglichen sind war der Vergleich erfolgreich.

Ein sehr kleine Programm :)

Ich hoffe, ich habe mich verständlich ausgedrückt.
Gruß, olfi

toeoe
10.09.2005, 14:53
Und nicht vergessen, die Zeichenkette mit einer "0" zu beenden, also:

wort:
.dw "Ich bin eine Zeichenkette", 0

Sonst könnte es zu Problemen kommen.

Gruß
Thomas

Asche
10.09.2005, 23:22
wie viele Strings mit der länge von durchschnittlich 15 Zeichen kann man überhaupt speichern? Gibt es eine Möglichkeit diesen Speicher zu erweitern?