本帖最后由 兰天白云 于 2010-8-12 21:14 编辑
以下是2字节16进制数转换成10进制数(最大9999),我只用了2字节变量
你可以把循环16次改为循环64次(8字节),并且把变量改成需要的长度
用C写也是可以的,直接把我的汇编翻译成C吧
BINBCD MOVLW 10H ;R4R5-->R1R2
MOVWF R0 ;29 LINE
CLRF R1 ;R0R1R2 R4R5R6
CLRF R2
LOOPC1 RLF R5,1
RLF R4,1
RLF R2,1
RLF R1,1
DECFSZ R0,1
B ADJDEC1
RETLW 00H
ADJDEC1 MOVLW R2
MOVWF FSR
CALL ADJBCD
MOVLW R1
MOVWF FSR
CALL ADJBCD
B LOOPC1
ADJBCD MOVLW 03H
ADDWF 0,0
MOVWF R6
BTFSC R6,3
MOVWF 0
MOVLW 30H
ADDWF 0,0
MOVWF R6
BTFSC R6,7
MOVWF 0
RETLW 00H |