diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03 | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03')
| -rw-r--r-- | Bachelor/Mikroprozessorsysteme/Praktikum3/P3_3.S03 | 105 |
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 |
