summaryrefslogtreecommitdiffstats
path: root/Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03
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/Mikroprozessorsysteme/Praktikum3/P3_3.S03
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03')
-rw-r--r--Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03105
1 files changed, 105 insertions, 0 deletions
diff --git a/Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03 b/Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03
new file mode 100644
index 0000000..52a4da5
--- /dev/null
+++ b/Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03
@@ -0,0 +1,105 @@
+;Sven Eisenhauer
+;MPS1 Versuch 3 Aufgabe 3
+;16.06.2005
+
+LSTOUT-
+$SFR80515.INC
+LSTOUT+
+
+ ORG 0000h
+
+ MOV DPTR,#0F803h
+ MOV A,#92h
+ MOVX @DPTR,A
+ MOV P5,#0FFh
+ MOV P4,#0FFh
+ MOV P1,#0FFh
+ MOV DPTR,#0F800h
+ MOV A,#00h
+ MOVX @DPTR,A
+ INC DPTR
+ MOVX @DPTR,A
+ INC DPTR
+ MOVX @DPTR,A
+ MOV R0,#0
+ MOV R1,#0
+ MOV R2,#0
+ MOV R3,#0
+
+BEGIN: JB P3.3,START
+ LJMP 8000h
+START: LCALL EINLES
+
+ JNB P3.2,SUBJMP
+ LCALL ADDIT
+SUBJMP: LCALL SUBST
+ SJMP BEGIN
+
+SUBST: CLR C
+ CLR OV
+ CLR P3.4
+ CLR P3.5
+ MOV A,R0
+ SUBB A,R2
+ MOV R4,A ;LOWBYTE
+ MOV A,R1
+ SUBB A,R3
+ MOV R5,A ;HIGHBYTE
+ LCALL AUSG
+ RET
+
+ADDIT: CLR C
+ CLR OV
+ CLR P3.4
+ CLR P3.5
+ MOV A,R0
+ ADD A,R2
+ MOV R4,A ;LOWBYTE
+ MOV A,R3
+ ADDC A,R1
+ MOV R5,A ;HIGHBYTE
+ LCALL AUSG
+ RET
+
+AUSG: MOV P1,R4 ;LOWBYTE
+ MOV A,R5
+ MOV DPTR,#0F802h
+ MOVX @DPTR,A ;HIGHBYTE
+ MOV P3.4,C
+ JNB OV,NOOV
+ SETB P3.5
+ JB ACC.7,POS
+ MOV A,#08h ;Backspace
+ LCALL SENDSE
+ MOV A,#2Bh ;+
+ LCALL SENDSE
+ RET
+POS: MOV A,#08h ;Backspace
+ LCALL SENDSE
+ MOV A,#2Dh ;-
+ LCALL SENDSE
+ RET
+NOOV: CLR P3.5
+ MOV A,#08h ;Backspace
+ LCALL SENDSE
+ MOV A,#20h ;space
+ LCALL SENDSE
+ RET
+
+
+EINLES: MOV DPTR,#0F800h ;Port A
+ MOVX A,@DPTR
+ MOV R1,A
+ MOV R0,P1
+ MOV DPTR,#0F801h ;Port B
+ MOVX A,@DPTR
+ MOV R3,A
+ MOV R2,P4
+ RET
+
+SENDSE: MOV SBUF,A
+ CLR TI
+WARTE: JNB TI, WARTE
+ RET
+
+END \ No newline at end of file