⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mulity_bcd_add.asm

📁 PIC单片机精简BCD加法减法汇编程序
💻 ASM
字号:




	
;---------------------------------------------十进制加法子程序
BCD_ADD;######################################
;入口:被加数TEMP,加数TEMP1出口:结果TEMP,进位位TEMP1
;---------------------------------------------
		MOVF	TEMP1,W
		ADDWF	TEMP,F
		CLRF	TEMP1
		RLF	TEMP1,F				;进位送入
		BTFSC	STATUS,DC
		GOTO	ADDJUST				;DC=1
		MOVLW	0x06				;假设LSD>9
		ADDWF	TEMP,F
		BTFSC	STATUS,C
		INCF	TEMP1,F
		BTFSS	STATUS,DC
		SUBWF	TEMP,F
		GOTO	BCD_ADD_END1
ADDJUST	
		MOVLW	0x06
		ADDWF	TEMP,F		
BCD_ADD_END1	
		MOVLW	0x60
		ADDWF	TEMP,F				;假设MSD>9
		BTFSC	STATUS,C
		GOTO	BCD_ADD_END2
		BTFSS	TEMP1,0x00
		SUBWF	TEMP,F
		GOTO	BCD_ADD_END
BCD_ADD_END2
		MOVLW	0x01
		MOVWF	TEMP1
BCD_ADD_END	
		RETURN	
;----------------------------------------------------
BCD_CARRY;##########################################
;入口:加进位位地址,B_COUNT被加数位数减一

		MOVF	TEMP3,W
		MOVWF	FSR
RE_BCD_CARRY
		MOVF	INDF,W
		MOVWF	TEMP
		CALL	BCD_ADD
		MOVF	TEMP,W
		MOVWF	INDF
		DECF	FSR,F

		DECFSZ	B_COUNT,F
		GOTO	RE_BCD_CARRY
	
		RETURN
;------------------------------------------------	
MULITY_BCD_ADD;########################################
;入口:被加数低位地址TEMP3,加数低位地址TEMP2,字节个数TEMP4,结果覆盖被加数

RE_MUL_BCD_ADD

		MOVF 	TEMP2,W
		MOVWF	FSR
		MOVF	INDF,W
		MOVWF	TEMP1

		MOVF 	TEMP3,W
		MOVWF	FSR
		MOVF	INDF,W
		MOVWF	TEMP	

		CALL	BCD_ADD

		MOVF	TEMP,W
		MOVWF	INDF		
	
		DECF	TEMP3,F
		DECF	TEMP2,F
		
		DECFSZ	TEMP4,F
		GOTO	MUL_BCD_ADD_CARRY
		GOTO	MULITY_BCD_ADD_END
MUL_BCD_ADD_CARRY

		MOVF	TEMP4,W
		MOVWF	B_COUNT	
		CALL	BCD_CARRY
		GOTO	RE_MUL_BCD_ADD		

MULITY_BCD_ADD_END
		RETURN
;------------------------------------------------------
;测试程序
;------------------------------------------------------
START
		MOVLW	0x23
		MOVWF	TEMP2
		MOVLW	0x33
		MOVWF	TEMP3

		MOVLW	0x04
		MOVWF	TEMP4

		CALL	MULITY_BCD_ADD

		NOP
		NOP

;----------------------------------------------------------	
		END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -