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

📄 bcd_add.txt

📁 实用子程序.rar本子程序库对《单片机应用程序设计技术》一书附录中的子程序库作了重大修订
💻 TXT
字号:
;*******************  Unsigned BCD Addition   ***************
;
;       This routine performs a 2 Digit Unsigned BCD Addition
; It is assumed that the two BCD numbers to be added are in
; locations Num_1 & Num_2. The result is the sum of Num_1+Num_2
; and is stored in location Num_2 and the overflow carry is returned
; in location Num_1
;
;   Performance :
;               Program Memory  :       25
;               Clock Cycles    :       23   ( worst case )
;
;       Rev 2.0 changed on 7/30/92.
;
;*******************************************************************;
;
Num_1   equ     28H       ; Overflow flow carry overwrites Num_1
Num_2   equ     29H       ; Num_2 + Num_1 overwrites Num_2
;
    INCLUDE        p16f877.inc
;..
	org     00H
	goto    main

BCDAdd  movf    Num_1,w
	addwf   Num_2       ; do binary addition
	clrf    Num_1
	rlf     Num_1
	btfsc   STATUS,DC       ; Is DC = 0 ?
	goto    adjust          ; adjust LSD
	movlw   6
	addwf   Num_2          ; Test for LSD > 9 ( by adding 6
	btfsc   STATUS,C
	incf    Num_1
	btfss   STATUS,DC       ; & checking Digit Carry
	subwf   Num_2           ; LSD < 9 , so get back original value.
	goto    over1
adjust  movlw   6
	addwf   Num_2
over1   movlw   60H             ; add 6 to MSD
	addwf   Num_2
	btfsc   STATUS,C
	goto    over3
	btfss   Num_1,0
	subwf   Num_2
	RETLW   0
over3   movlw   1
	movwf   Num_1
	RETLW   0
;
;********************************************************************
;               Test Program
;*********************************************************************
main    movlw   95
	movwf   Num_1      ; Set Num_1 = 99 ( max BCD digit )
	movlw   73
	movwf   Num_2      ; Set Num_2 = 99
;
	call    BCDAdd     ; After addition, Num_2 = 98
;                          ;  and Num_1 = 01 ( 99+99 = 198 -> max number )
;
self    goto    self
;

;
	END




⌨️ 快捷键说明

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