Professional Documents
Culture Documents
16
03106715
03112186
03111423
2
(
). :
, ( / )
. -
( 00
09) BCD ( BCD). K
DAA /
1 DAA ( 0). display
-
(002,003).
IN 10H ;
CALL CLEAR_SCREEN ;
START: ;
CALL READ_DIGIT ; 1
MOV C,A ; 1 C
CALL CLEAR_SCREEN ; 1
LXI H,0B05H ; 1
MOV M,C
DCX H
CALL REFRESH_SCREEN ; 1
CHECK: ;
CALL KIND ;
CPI 80H ; FETCH REG
JZ MULT ; =83 FETCH REG
CPI 83H ; STORE/INCR
JZ SINGLE_DIGIT_ADD ; =83 INCR
CPI 0AH ; 2
JNC CHECK ;
MOV B,A ; B
LXI H,0B04H ; 2 1 7-segment
MOV M,B
CALL REFRESH_SCREEN
MOV A,C ; 1 RLC
; BCD (: 4 MSB, : 4 LSB)
RLC
RLC
RLC
ANI F0H
ADD B
MOV C,A ; 1 BCD C
READ_INCR: ; (STORE/INCR)
CALL KIND
CPI 83H
JNZ READ_INCR ; STORE/INCR
CALL READ_DIGIT ;
LXI H,0B01H ;
MOV M,A
CALL REFRESH_SCREEN ;
READ_DIGIT: ;
CALL KIND
CPI 0AH
JNC READ_DIGIT ; 0-9
RET
PRINT_BASE_10: ; '
LXI H,0B03H ;
CPI 0AH ; 10 2
JNC OVER_9
MVI M,10H ; <10
DCX H
JMP UNITS ;
OVER_9: ; >=10 2
MOV B,A ;
RRC ; 4 SB
RRC
RRC
RRC
ANI 0FH
LXI H,0B03H ; 7-segment
MOV M,A
DCX H
MOV A,B
UNITS:
ANI 0FH ; 4 LSB
MOV M,A ;
CALL REFRESH_SCREEN ;
RET
REFRESH_SCREEN:
PUSH PSW
LXI D,0B00H
CALL STDM
CALL DCD
POP PSW
RET
CLEAR_SCREEN:
LXI H,0B00H
MVI M,10H
INX H
MVI M,10H
INX H
MVI M,10H
INX H
MVI M,10H
INX H
MVI M,10H
INX H
MVI M,10H
LXI D,0B00H
CALL STDM
CALL DCD
RET
END
;
;
; DCD
; D,E