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 14:35, local time: 2024/12/25 20:16,
3.147.51.72:LOG IN
|
©2024 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://linistepper.com/Techref/microchip/math/incdec/packedBCD-RB.htm"> PIC Microcontoller, Math Method, Increment / Decrement packed BCD, Regulus Berdin </A> |
Did you find what you needed? |