專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享用匯編實(shí)現(xiàn)二進(jìn)制數(shù)轉(zhuǎn)BCD碼。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。
BIN_L EQU 10H ;要進(jìn)行二進(jìn)制轉(zhuǎn)換的 低字節(jié) BIN_H EQU BIN_L+1 ;要進(jìn)行二進(jìn)制轉(zhuǎn)換的 高字節(jié) GE_B EQU BIN_L+2 ;轉(zhuǎn)換后的 個(gè)位 SHI_B EQU BIN_L+3 ;轉(zhuǎn)換后的 十位 BAI_B EQU BIN_L+4 ;轉(zhuǎn)換后的 百位 QIAN_B EQU BIN_L+5 ;轉(zhuǎn)換后的 千位 WAN_B EQU BIN_L+6 ;轉(zhuǎn)換后的 萬位
; **********************說明************************ ; * 入口:BIN_L BIN_H * ; * 出口:GE_B SHI_B BAI_B QIAN_B WAN_B * ; * 轉(zhuǎn)換子程序: CONVERT_2_10 * ; **************************************************
ORG 00H JISUAN: MOVLW 0FFH ;驗(yàn)證程序 MOVWF BIN_H MOVLW 0FFH MOVWF BIN_L CALL CONVERT_2_10 GOTO $ ;-------------------------------------------------------------------------------------
CONVERT_2_10: ;二進(jìn)制轉(zhuǎn)換十進(jìn)制子程序 CLRF WAN_B CLRF QIAN_B CLRF BAI_B CLRF SHI_B CLRF GE_B BIN_L_PR ;二進(jìn)制低字節(jié)進(jìn)行十進(jìn)制轉(zhuǎn)換程序 MOVF BIN_L,F BTFSC STATUS,Z GOTO BIN_H_PRO BAI_B_PRO_L: MOVLW 64H SUBWF BIN_L,W BTFSS STATUS,C GOTO SHI_B_PRO_L MOVWF BIN_L INCF BAI_B,F GOTO BAI_B_PRO_L SHI_B_PRO_L: MOVLW 0AH SUBWF BIN_L,W BTFSS STATUS,C GOTO GE_B_PRO_L MOVWF BIN_L INCF SHI_B GOTO SHI_B_PRO_L
GE_B_PRO_L: MOVF BIN_L,W MOVWF GE_B GOTO BIN_H_PRO BIN_H_PRO ;二進(jìn)制高字節(jié)進(jìn)行十進(jìn)制轉(zhuǎn)換程序 MOVF BIN_H,F BTFSC STATUS,Z GOTO CONVERT_END GE_B_PRO_H: MOVLW 6H ADDWF GE_B,F MOVLW 0AH SUBWF GE_B,W BTFSS STATUS,C GOTO SHI_B_PRO_H ;個(gè)位<10,則直接到十位轉(zhuǎn)換程序 MOVWF GE_B INCF SHI_B,F ;個(gè)位>=10,則進(jìn)位 GOTO SHI_B_PRO_H SHI_B_PRO_H: MOVLW 5H ADDWF SHI_B,F MOVLW 0AH SUBWF SHI_B,W BTFSS STATUS,C GOTO BAI_B_PRO_H ;十位<10,則直接到百位轉(zhuǎn)換程序 MOVWF SHI_B INCF BAI_B,F ;十位>=10,則進(jìn)位 GOTO BAI_B_PRO_H BAI_B_PRO_H: MOVLW 2H ADDWF BAI_B,F MOVLW 0AH SUBWF BAI_B,W BTFSS STATUS,C GOTO QIAN_B_PRO_H ;百位<10,則直接到千位轉(zhuǎn)換程序 MOVWF BAI_B INCF QIAN_B ;百位>=10,則進(jìn)位 GOTO QIAN_B_PRO_H QIAN_B_PRO_H: MOVLW 0AH SUBWF QIAN_B,W BTFSS STATUS,C GOTO WAN_B_PRO_H ;千位<10,則直接到萬位轉(zhuǎn)換程序 MOVWF QIAN_B INCF WAN_B ;千位>=110,則進(jìn)位 GOTO WAN_B_PRO_H WAN_B_PRO_H: DECFSZ BIN_H,F GOTO GE_B_PRO_H GOTO CONVERT_END CONVERT_END: NOP RETLW 0H ;------------------------------------------------------------------------------------- ORG 1FFH GOTO JISUAN END