Increment / Decrement
packed BCD
From Regulus Berdin
;Increment/Decrement routines for packed BCD
;
;6 digit bcd in bcd1:bcd2:bcd3:...(lsb:msb)
;
;
cblock 0x0c
tmp
bcd1:3
endc
inc_bcd:
movlw bcd1
movwf FSR
movlw 3 ;adjust for number of digits
movwf tmp
iloop movlw 0x67
addwf INDF
movlw 0x60
skpdc
movlw 0x66
skpc
subwf INDF
skpz
goto iquit
incf FSR
decfsz tmp
goto iloop
iquit retlw 0
dec_bcd:
movlw bcd1
movwf FSR
movlw 3 ;adjust for number of digits
movwf tmp
dloop movlw 1
subwf INDF
addwf INDF,w
movlw 0x6
skpnc
movlw 0x66
skpndc
subwf INDF
xorlw 0x66
skpz
goto dquit
incf FSR
decfsz tmp
goto dloop
dquit retlw 0
The routines can accomodate to any number of BCD digits, just change the movlw 3.
file: /Techref/microchip/math/incdec/packedBCD-RB.htm,
1KB, , updated: 2009年2月13日 15:35, local time: 2025年10月5日 13:11,
©2025 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE.
Questions?<A HREF="http://massmind.org/techref/microchip/math/incdec/packedBCD-RB.htm"> PIC Microcontoller, Math Method, Increment / Decrement packed BCD, Regulus Berdin </A>
Did you find what you needed?
Welcome to massmind.org!
Welcome to massmind.org!
.