|
發表於 2012-9-18 19:25:44
|
顯示全部樓層
本帖最後由 legion 於 2012-9-18 07:27 PM 編輯
找了一下,幾年前作的東西里面的一段程式
跑起來沒什麼大問題,參考看看吧
HH_HEX DATA 2AH ;輸入暫存, 16-23BIT.
HI_HEX DATA 2BH ;輸入暫存. 8-15BIT.
LO_HEX DATA 2CH ;輸入暫存. 0-7BIT.
A_DEC DATA 60H ;個.
B_DEC DATA 61H ;十.
C_DEC DATA 62H ;百.
D_DEC DATA 63H ;千.
E_DEC DATA 64H ;萬.
F_DEC DATA 65H ;十萬.
G_DEC DATA 66H ;百萬.
H_DEC DATA 67H ;千萬.
MOV R1,HH_HEX
MOV R2,HI_HEX
MOV R3,LO_HEX
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#0
MOV R0,#24
JMP BIN24BCD4_1
BIN24BCD4_0:
MOV A,R7
ADD A,R7
DA A
MOV R7,A
MOV A,R6
ADDC A,R6
DA A
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
BIN24BCD4_1:
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R1
RLC A
MOV R1,A
JNC BIN24BCD4_2
MOV A,#1
ADD A,R7
DA A
MOV R7,A
CLR A
ADDC A,R6
DA A
MOV R6,A
CLR A
ADDC A,R5
DA A
MOV R5,A
CLR A
ADDC A,R4
DA A
MOV R4,A
BIN24BCD4_2:
DJNZ R0,BIN24BCD4_0
;--下面是切割成單一字元為了作顯示用途,不想切割就到此為止
;--將R4,R5,R6,R7切割出來給8位數的10進制.
;---R4---------
MOV A,#0F0H
ANL A,R4
RR A
RR A
RR A
RR A
MOV H_DEC,A ;千萬.
MOV A,#0FH
ANL A,R4
MOV G_DEC,A ;百萬.
;---R5---------
MOV A,#0F0H
ANL A,R5
RR A
RR A
RR A
RR A
MOV F_DEC,A ;十萬.
MOV A,#0FH
ANL A,R5
MOV E_DEC,A ;萬.
;---R6---------
MOV A,#0F0H
ANL A,R6
RR A
RR A
RR A
RR A
MOV D_DEC,A ;千.
MOV A,#0FH
ANL A,R6
MOV C_DEC,A ;百.
;---R7---------
MOV A,#0F0H
ANL A,R7
RR A
RR A
RR A
RR A
MOV B_DEC,A ;十.
MOV A,#0FH
ANL A,R7
MOV A_DEC,A ;個. |
|