diff options
Diffstat (limited to 'Bachelor/Mikroprozessorsysteme2/mi2/Termin5/ser_io.S')
| -rw-r--r-- | Bachelor/Mikroprozessorsysteme2/mi2/Termin5/ser_io.S | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Bachelor/Mikroprozessorsysteme2/mi2/Termin5/ser_io.S b/Bachelor/Mikroprozessorsysteme2/mi2/Termin5/ser_io.S new file mode 100644 index 0000000..a8f76a8 --- /dev/null +++ b/Bachelor/Mikroprozessorsysteme2/mi2/Termin5/ser_io.S @@ -0,0 +1,57 @@ +@---------------------------------------------------------------------------- +@ 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 |
