Forum: Mikrocontroller und Digitale Elektronik foreach Schleife in Assembler


von Sunnyboy-88 (Gast)


Lesenswert?

Hallo Leute!

Kann mir jemand sagen, wie der Quelltext für eine Funktion aussehen 
müsste, die folgendes macht:


ich habe in db folgenden Text

db 'Hallo! Test...',0


Die funktion die ich brauche muss nun jeden einzelnen Buchstabe in a 
laden und dann die Funktion "schreiben" ausführen, und wenn alle 
Buchstaben und Zeichen durch sind, muss sie zur Funktion "stoppen" 
springen.

Also wie dies, nur halt für alle buchstaben die in db drinnen stehen:


schreibetext:

mov a,#'h'
jmp schreiben
jmp stoppen

schreiben:
.
.
.
ret

stoppen:
.
.
.


Kann mir da jemand vielleicht kurz helfen?
PS: Habe einen 8051er Chip (falls das wichtig ist... ^^)


Grüßle, Sunnyoby88

von Otto (Gast)


Lesenswert?

in etwa so:

ININEU:   MOV DPTR,#TEXT         ; Startadresse Deines Textes
   MOV R3,#15             ; Schleifenzaehler

INDISHI:  MOV R2,#255            ; Schleifenzaehler LO

INDISLO:  MOV A,#0               ; Offset

                                 ; Schreiben

   MOVC A,@A+DPTR         ; Wert aus Eprom
   DJNZ R2,INDISLO        ;


TEXT: db 'Hallo! Test...',0



Du kannst auch eine Endlosschleife programmieren, die nach Einlesen der 
"0" aus Deinem Text verlassen wird.

Otto

von Sunnyboy-88 (Gast)


Lesenswert?

@Otto


Vielen vielen Dank für deine Hilfe,

habe es hinbekommen :)

Es funktioniert genau so wie ich mir das vorgestellt habe :)))


Grüßle Sunnyboy88

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.