@---------------------------------------------------------------------------- @ File Name : ser_io.S @ Object : Ein- Ausgabe-Funktionen der seriellen Schnittstelle @ @ Namen : Matr.-Nr.: @ : Matr.-Nr.: @ @---------------------------------------------------------------------------- @ Debuginformationen .file "ser_io.S" @ Funktion .text .align 2 .global inits .type inits,function inits: stmfd sp!,{lr} @ Retten der Register swi 0 ldmfd sp!,{pc} @ Rücksprung @ Funktion .text .align 2 .global puts .type puts,function puts: stmfd sp!,{lr} @ Retten der Register // Hier muß Ihr Code eingefügt werden. mov r5, r0 @ Anfangsadresse des kompletten Strings von r0 nach r5 kopieren loop: ldrb r0, [r5], #1 @ Holen des Zeichens der Adresse in r5 nach r0 und erhöhe dann Adresse in r5 cmp r0, #0 @ Ende des Strings? entspricht binärer Null beq L1 @ Wenn Stringende erreicht swi 1 @ Auslösen der SWI Methode putchar (swi + offset) b loop @ weiter bei loop solange Stringende nicht erreicht L1: mov r0, #0x0d @ Carriage Return swi 1 @ Auslösen der SWI Methode putchar (swi + offset) mov r0, #0x0a @ Linefeed swi 1 @ Auslösen der SWI Methode putchar (swi + offset) ldmfd sp!,{pc} @ Rücksprung @ Funktion .text .align 2 .global gets .type gets,function gets: stmfd sp!,{lr} @ Retten der Register // Hier könnte Ihr Code eingefügt werden! ldmfd sp!,{pc} @ Rücksprung .end