欢迎光临散文网 会员登陆 & 注册

[旋风][6502汇编][24位HEX转DEC]

2019-04-05 00:21 作者:FlameCyclone  | 我要投稿

;[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


[旋风][6502汇编][24位HEX转DEC]的评论 (共 条)

分享到微博请遵守国家法律