📄 mcu89c51hoter.asm
字号:
S3L: MOVX A, @R1
MOVX @R0, A
INC R0
INC R1
MOVX A, @R1
MOVX @R0, A
INC R0
INC R1
DJNZ R5, S3L
RET
;=======================
DIFF: PUSH PSW
MOV PSW, #24
DF0L: MOV R0, #0
MOV R1, #0
MOV R2, #0
MOV R3, #0
MOV R4, #0
MOV R5, #0
MOV R6, #0
MOV R7, #0
DF1L: MOVX A, @DPTR
MOV 65H, A
INC DPTR
INC DPTR
MOV A, DPH
CLR C
SUBB A, #16
JC DF10
POP PSW
RET
DF10: MOVX A, @DPTR
CLR C
SUBB A, 65H
JNC DF11
CPL A
INC A
DF11: LCALL SS21
CLR C
SUBB A, #63
JNC DF12
MOV A, 65H
JZ DF1L
CLR C
SUBB A, #2
JNC DF1L
DF12: LCALL CRR
MOV A, DPL
ADD A, #32
JNC DF13
INC DPH
DF13: MOV DPL, A
SJMP DF0L
;=======================
DF14: MOV R0, #0
MOVX A, @R0
INC A
MOVX @R0, A
ADD A, ACC
MOV R0, A
MOV A, DPH
MOVX @R0, A
INC R0
MOV A, DPL
MOVX @R0, A
RET
;=======================
SUB4: MOV R0, #0
MOVX A, @R0
JNZ S41
RET
S41: MOV R0, A
MOV R1, #2
S4L0: MOVX A, @R1
MOV DPH, A
INC R1
MOVX A, @R1
MOV DPL, A
DEC R1
SUBB A, #18
JNC S42
DEC DPH
S42: MOV DPL, A
PUSH 0H
MOV R0, #32
MOV R6, #0
S4L1: MOVX A, @DPTR
CLR C
SUBB A, R6
JC S43
MOVX A, @DPTR
MOV R6, A
MOV R4, DPH
MOV R5, DPL
S43: INC DPTR
DJNZ R0, S4L1
POP 0H
MOV A, R4
MOVX @R1, A
INC R1
MOV A, R5
MOVX @R1, A
INC R1
DJNZ R0, S4L0
RET
ANA1S: MOV PSW, #24
MOV R0, #1
MOV A, #0
MOVX @R0, A
MOV R0, #96
MOV R1, #12
AN10: MOVX @R0, A
INC R0
DJNZ R1, AN10
AN11: MOV R0, #0
MOVX A, @R0
MOV R1, A
INC R0
MOVX A, @R0
CLR C
SUBB A, R1
JNC AN13
MOVX A, @R0
INC A
MOVX @R0, A
ADD A, ACC
MOV R0, A
MOVX A, @R0
MOV DPH, A
INC R0
MOVX A, @R0
MOV DPL, A
LCALL MSP
MOV A, R2
ADD A, R3
MOV R0, #97
XCH A, R3
MOVX A, @R0
ADD A, R3
MOVX @R0, A
JNC AN12
DEC R0
MOVX A, @R0
INC A
MOVX @R0, A
AN12: SJMP AN11
AN13: MOV R0, #96
MOVX A, @R0
MOV R3, A
INC R0
MOVX A, @R0
MOV R1, A
MOV R0, #0
MOVX A, @R0
MOV R0, A
MOV A, R3
LCALL DIVB
MOV 76H, R1
RET
;=======================
MSP: MOV PSW, #24
MOV 7EH, DPH
MOV 7FH, DPL
MOVX A, @DPTR
CLR C
SUBB A, R1
JNC MP11
CPL A
INC A
MP11: MOV B, #10
DIV AB
MOV R0, A
MOV R2, #1
MP12: LCALL DDD
SUBB A, R0
JC mp13
INC R2
SJMP MP12
MP13: MOV R4, #4
MP14: LCALL DDD
SUBB A, R0
JNC MP15
DJNZ R4, MP14
SJMP MP16
MP15: MOV A, #5
CLR C
SUBB A, R4
ADD A, R2
MOV R2, A
INC R2
INC R2
MP16: MOV A, R2
PUSH ACC
MOV DPH, 7EH
MOV DPL, 7FH
MOV R0, #16
LCALL MS1
MOV A, R7
JNZ MP17
POP ACC
MOV R2, A
MOV A, #0
RET
MP17: MOV A, R4
JNZ MP18
LJMP MP1B
MP18: MOV A, #17
CLR C
SUBB A, R2
PUSH ACC
ADD A, 7FH
MOV DPL, A
MOV DPH, 7EH
JNC MP19
INC DPH
ANL DPH, #0FH
MP19: MOV R0, #22
LCALL MS1
MOV A, R7
JZ MP1A
MOV A, R5
JZ MP1A
MOV A, #22
CLR C
SUBB A, R3
MOV R3, A
POP ACC
ADD A, R3
MOV R3, A
POP ACC
MOV R2, A
LJMP MP1F
MP1A: POP ACC
MOV R3, A
POP ACC
MOV R2, A
LJMP MP1F
MP1B: MOV A, R5
JNZ MP1C
POP ACC
MOV R2, A
MOV A, #0
RET
MP1C: MOV A, #17
CLR C
SUBB A, R3
PUSH ACC
ADD A, 7FH
MOV DPL, A
MOV DPH, 7EH
JNC MP1D
INC DPH
ANL DPH, #0FH
MP1D: MOV R0, #22
LCALL MS1
MOV A, R7
JZ MP1E
MOV A, R4
JZ MP1E
MOV A, #22
CLR C
SUBB A, R2
MOV R3, A
POP ACC
ADD A, R3
MOV R3, A
POP ACC
MOV R2, A
LJMP MP1F
MP1E: POP ACC
MOV R3, A
POP ACC
MOV R2, A
MP1F: MOV DPH, 7EH
MOV DPL, 7FH
MOV A, #1
RET
;=======================
TACT: MOV 7DH,#0
MOV 7EH, DPH
MOV 7FH, DPL
MOV A, 56H
JNZ TA11
MOV A, 57H
JNZ TA11
MOV 56H, DPH
MOV 57H, DPL
RET
TA11: MOV A, DPL
CLR C
SUBB A, 57H
MOV R0, A
MOV A, DPH
SUBB A, 56H
ANL A, #0FH
MOV 56H, DPH
MOV 57H, DPL
CLR C
RRC A
JZ TA12
MOV A, #255
SJMP TA13
TA12: MOV A, R0
RRC A
TA13: XCH A, 53H
XCH A, 52H
XCH A, 51H
XCH A, 50H
JNZ TA14
RET
TA14: MOV R0, #0
ADD A, 50H
JNC TA15
INC R0
TA15: ADD A, 51H
JNC TA16
INC R0
TA16: ADD A, 52H
JNC TA17
INC R0
TA17: CLR C
XCH A,R0
RRC A
XCH A,R0
RRC A
CLR C
XCH A,R0
RRC A
XCH A,R0
RRC A
MOV 55H,A
MOV C,ACC.7
JNC T18A
CLR C
RRC A
MOV R0,A
MOV A,#29
MOV R1,#76
LCALL DIVB
MOV A,R1
CLR C
RRC A
MOV 64H,A
MOV R1,A
SJMP T18B
T18A: MOV R0, A
MOV A, #29
MOV R1, #76
LCALL DIVB
MOV 64H, R1
T18B: MOV A,8
JNZ T18C
MOV A, R1
LCALL DIS1
T18C: CPL P1.1
MOV A, 64H
CLR C
SUBB A, 62H
MOV R4, #5
MOV R5, #2
JC TA19
LJMP HRI
TA19: MOV A, 64H
CLR C
SUBB A, 63H
MOV R4, #6
MOV R5, #4
JNC TA1A
LJMP HRI
TA1A: MOV A, 77H
JZ TA1B
LJMP HRN
TA1B: MOV A, 53H
CLR C
SUBB A, 55H
JZ TA20
JNC TA1F
CPL A
INC A
MOV B, A
MOV A, 55H
DIV AB
CLR C
SUBB A, #3
JC TA1D
TA20: MOV 12H,#0
MOV A, 40H
JZ TA1C
LJMP TA6
TA1C: RET
TA1D: MOV A, 79H
ADD A, #1
MOV 79H, A
JNC TA1E
INC 78H
TA1E: MOV A,12H
JNZ TA22
LCALL TACI
TA22: LJMP TAAC
;-----------------------
TA1F: MOV B, A
MOV A, 55H
DIV AB
CLR C
SUBB A, #2
JNC TA20
MOV A, 7BH
ADD A, #1
MOV 7BH, A
JNC TA21
INC 7AH
TA21: SJMP TA1E
;=======================
TAAC: MOV A,50H
CLR C
SUBB A,55H
JNC TAA1
CPL A
INC A
TAA1: CLR C
SUBB A,#40
JNC TAW
MOV A,51H
CLR C
SUBB A,55H
JNC TAA2
CPL A
INC A
TAA2: CLR C
SUBB A,#40
JNC TAW
MOV A,52H
CLR C
SUBB A,55H
JNC TAA3
CPL A
INC A
TAA3: CLR C
SUBB A,#40
JNC TAW
MOV A,55H
CLR C
RRC A
CLR C
MOV R0,A
MOV A,53H
RRC A
ADD A,R0
MOV 53H,A
XRL 12H,#1
TAW: RET
;=======================
ORG 156CH
DIF2: MOV PSW,#24
MOV R0, #0
MOV R1, #0
MOV R2, #0
MOV R3, #0
MOV R4, #0
MOV R5, #0
MOV R6, #0
MOV R7, #0
DFL0: DEC A
JNZ DF21
RET
DF21: PUSH ACC
MOVX A, @DPTR
MOV 65H, A
INC DPTR
ANL DPH, #0FH
MOVX A, @DPTR
CLR C
SUBB A, 65H
JNC DF24
MOV A,#0
DF24: LCALL SS21
CLR C
SUBB A,54H
JNC DF25
CPL A
INC A
CLR C
MOV B,A
MOV A,54H
DIV AB
CLR C
SUBB A,#4
JNC DF25
MOV A, 65H
JNZ DF25
POP ACC
SJMP DFL0
DF25: POP ACC
MOV A,DPL
SUBB A,#10
MOV DPL,A
JNC DF26
DEC DPH
ANL DPH,#0FH
DF26: MOV R4, #20
MOV R0, #0
MOV R1, #255
DFL1: MOVX A, @DPTR
CLR C
SUBB A, R0
JC DF27
ADD A, R0
XCH A, R0
MOV R2, 1CH
SJMP DF28
DF27: ADD A, R0
CLR C
SUBB A, R1
JNC DF28
ADD A, R1
XCH A, R1
MOV R3, 1CH
DF28: INC DPTR
ANL DPH, #0FH
DJNZ R4, DFL1
MOV A, DPL
CLR C
SUBB A, R2
MOV DPL, A
JNC DF2A
DEC DPH
ANL DPH, #0FH
DF2A: MOV A, #1
RET
DF2B: MOV A, DPL
CLR C
SUBB A, R3
MOV DPL, A
JNC DF2C
DEC DPH
ANL DPH, #0FH
DF2C: MOV A, #2
RET
;=======================
ORG 1620H
DDD: MOV A, #255
ADD A, DPL
MOV DPL, A
MOV A, #255
ADDC A, DPH
ANL A, #0FH
MOV DPH, A
MOVX A, @DPTR
CLR C
SUBB A, R1
JNC DD1
CPL A
INC A
DD1: CLR C
RET
;===================================
CRR: MOV R0, #0
MOVX A, @R0
JZ cr1
ADD A, ACC
MOV R0, A
MOVX A, @R0
MOV R2, A
INC R0
MOVX A, @R0
MOV R3, A
MOV A, DPL
CLR C
SUBB A, R3
XCH A, R3
MOV A, DPH
SUBB A, R2
ANL A, #0FH
JNZ CR1
MOV A, R3
CLR C
SUBB A, #48
JNC CR1
RET
CR1: LJMP DF14
;==========================
SF21: MOVX A, @DPTR
PUSH DPH
PUSH DPL
PUSH ACC
LCALL BLM
POP ACC
POP DPL
POP DPH
CLR C
SUBB A, R1
JNC SF201
CPL A
INC A
SF201: CLR C
SUBB A, 54H
JZ SFSF
JNC SF204
CPL A
INC A
SF202: MOV B, A
MOV A, 54H
DIV AB
CLR C
SUBB A, #3
JC SF203
SFSF: MOV A, #1
RET
SF203: MOV A, #0
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -