foreach Schleife in Assembler

Gast #1193106
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
Gast #1193123
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren