PUBLIC _HEX2BCD
;PUBLIC _DT1
;PUBLIC _DT2
;@@DATA DSEG UNITP
;_DT1: DS 2
;_DT2: DS 2
;DSEG SADDR
@@CADE CSEG
_HEX2BCD:
PUSH DE
MOVW DE,AX ;保存源數據指針
MOVW AX,SP
MOVW HL,AX
MOV A,[HL+4]
XCH A,X
MOV A,[HL+5]
MOVW HL,AX
PUSH BC
MOV B,#32
MOV A,#0
MOV [HL],A
MOV [HL+1],A
MOV [HL+2],A
MOV [HL+3],A
H2BCD1:
CLR1 CY
PUSH DE
MOV A,[DE]
ROLC A,1
MOV [DE],A
INCW DE
MOV A,[DE]
ROLC A,1
MOV [DE],A
INCW DE
MOV A,[DE]
ROLC A,1
MOV [DE],A
INCW DE
MOV A,[DE]
ROLC A,1
MOV [DE],A
POP DE
MOV A,[HL]
ADDC A,[HL]
ADJBA
MOV [HL],A
MOV A,[HL+1]
ADDC A,[HL+1]
ADJBA
MOV [HL+1],A
MOV A,[HL+2]
ADDC A,[HL+2]
ADJBA
MOV [HL+2],A
MOV A,[HL+3]
ADDC A,[HL+3]
ADJBA
MOV [HL+3],A
DBNZ B,$H2BCD1
POP BC
POP DE
RET
END
|