; Ausgabe eines Strings aus dem RAM serout_string_RAM: ldi temp1, 0xAA ;Preamble sts string, temp1 sts string+1, temp1 sts string+2, temp1 sts string+3, temp1 sts string+4, zeichen ;Zeichen = Messwert ldi temp1, 0x00 ;00 zeigt Ende des Strings an sts string+5, temp1 ldi zl, low(string) ;Z-pointer laden ldi zh, high(string) rcall serout_string_RAM_sub serout_string_RAM_sub: ld temp1, z+ ;läd temp1 mit der Speicherstelle im SRAM die durch den ;Z-Pointer adressiert ist. Das"+" erhöht den Z-Pointer ;schonmal um 1, damit beim nächten lesen von der nächten ;durch den Z-Pointer angezeigten Stelle gelesen wird and temp1,temp1 ; Frame zu ende (0x00)? breq serout_string_RAM_ende ; wenn ja, -> Ende serout_string_RAM_wait: sbis UCSRA,UDRE ; Warten bis UDR für das nächste ; Byte bereit ist rjmp serout_string_RAM_wait out UDR, temp1 ;Byte ins UDR Register schreiben rjmp serout_string_RAM_sub ; nächstes Zeichen bearbeiten serout_string_RAM_ende: ret .DSEG string: .BYTE 6