[旋风][6502汇编][24位HEX转DEC]
;[FC][24位HEX转DEC][20190403]
;FlameCyclone
.ORG $8000
Hex_LL = $00
Hex_LH = $01
Hex_HL = $02
Dec_Digit = $03
DIGIT_COUNT = 08
;零页占用: 11字节
; 程序段: 0x71字节
;$0xFFFFFF转16777215耗时2427
;$0x98967F转9999999耗时4217
; $0xF423F转999999耗时3628
; $0x1869F转99999耗时3011
; $0x270F转9999耗时2374
; $0x3E7转999耗时1667
; $0x63转99耗时980
; $0x09转9耗时241
LDX #$FF
TXS
LDA #$7F
STA Hex_LL
LDA #$96
STA Hex_LH
LDA #$98
STA Hex_HL
JSR Hex_To_Dec
RTS
Hex_To_Dec:
LDY #$00
LDX #DIGIT_COUNT - $02
Convert_Compare:
LDA Hex_HL
HL_Compare:
CMP Dec_Data_HL,X
BCC Convert_Digit_End
BNE Sub_LL
LDA Hex_LH
LH_Compare
CMP Dec_Data_LH,X
BCC Convert_Digit_End
BNE Sub_LL
LDA Hex_LL
LL_Compare:
CMP Dec_Data_LL,X
BCC Convert_Digit_End
Sub_LL:
LDA Hex_LL
SBC Dec_Data_LL,X
STA Hex_LL
BCS Sub_LH
DEC Hex_LH
Sub_LH:
LDA Hex_LH
SEC
SBC Dec_Data_LH,X
STA Hex_LH
BCS Sub_HL
DEC Hex_HL
Sub_HL:
LDA Hex_HL
SEC
SBC Dec_Data_HL,X
STA Hex_HL
Set_Digit:
INY
BNE Convert_Compare
Convert_Digit_End:
STY Dec_Digit + 1,X
LDY #$00
DEX
BPL Convert_Compare
Convert_Finish:
STA Dec_Digit
RTS
Dec_Data_LL:
.DB $0A,$64,$E8,$10,$A0,$40,$80
Dec_Data_LH:
.DB $00,$00,$03,$27,$86,$42,$96
Dec_Data_HL:
.DB $00,$00,$00,$00,$01,$0F,$98

