summaryrefslogtreecommitdiffstats
path: root/Bachelor/Mikroprozessorsysteme2/mi2/Termin6/ser_io.S
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Bachelor/Mikroprozessorsysteme2/mi2/Termin6/ser_io.S
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Bachelor/Mikroprozessorsysteme2/mi2/Termin6/ser_io.S')
-rw-r--r--Bachelor/Mikroprozessorsysteme2/mi2/Termin6/ser_io.S57
1 files changed, 57 insertions, 0 deletions
diff --git a/Bachelor/Mikroprozessorsysteme2/mi2/Termin6/ser_io.S b/Bachelor/Mikroprozessorsysteme2/mi2/Termin6/ser_io.S
new file mode 100644
index 0000000..5bad2a8
--- /dev/null
+++ b/Bachelor/Mikroprozessorsysteme2/mi2/Termin6/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