Hallo zusammen ich programmiere gerade in Assembler. Und möchte gerne mehrere im Flash abgelegte Texte über Uart ausgeben. Zur Zeit sieht das so aus: main: ldi temp1, low(RAMEND) out SPL, temp1 ldi temp1, high(RAMEND) out SPH, temp1 ... call ausgabe_text1 .... call ausgabe_text2 ende: jmp ende ------------------------------ ausgabe_text1: ldi ZL,low(text1*2) ; Z Pointer laden ldi ZH,high(text1*2) rcall serout_string ret ausgabe_text2: ldi ZL,low(text2*2) ; Z Pointer laden ldi ZH,high(text2*2) rcall serout_string ret Text1: .db "hier",0,0 Text2: .db "springt",0 Nun habe ich wie gesagt mehrere Texte zur Ausgabe. Wie kann ich die Zeilen ändern, um sie universell zu nutzen? call ausgabe_text1 ldi ZL,low(text1*2) ; Z Pointer laden ldi ZH,high(text1*2) Danke im Vorraus
Hi Ich würde nicht für jeden Text ein Unterprogramm schreiben, sondern nur an den entsprechenden Stellen Z laden und 'serout_string' aufrufen. Evtl. ein Macro benutzen: .macro textout ldi ZL,Low(@0*2) ldi ZH,High(@0*2) rcall serout_string .endmacro Aufruf mit: textout text1 MfG Spess
Danke das ist das, was ich gesucht habe. Immer wieder toll, dass einem die Leute hier so schnell helfen können.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.