;*********************************************** ;Floating point division of two unsigned integer ;8 bit variables ; ;Input: AARGB0 - dividend (nominator) ; BARGB0 - divisor (denominator) ;Output: ; AEXP, AARGB0, AARGB1 - quotient ; (MICROCHIP format - AN575) ; w = 0 on success ; w = 1 error: divide by zero ;Temporaries: ; BARGB1 ; ;RAM - 5 bytes ;ROM - 41 words ;Speed - 7+4+8*10-2+5+14*25-2+4+3 = 449 instruction ; cycles worst case (including call and return) ;*********************************************** fdiv24_8_8 mov W, BARGB0 snb Z retw #1 ;divide by zero clr AEXP mov W, AARGB0 snb Z retw #0 ;zero result ;loop to use all 8 bits of dividend (integer 8 by 8 divide) mov AARGB1, W clr BARGB1 mov W, #$08 mov AARGB0, W ;aargb0 is used as loop counter fdiv24_8_8b rl AARGB1 rl BARGB1 mov W, BARGB0 mov W, BARGB1-w snb C mov BARGB1, W decsz AARGB0 jmp fdiv24_8_8b rl AARGB1 ;aargb1 is the integer quotient so far ;loop to fill all the bits of 16bit mantissa clr AARGB0 mov W, #$8E mov AEXP, W clrb C fdiv24_8_8c rl BARGB1 mov W, BARGB0 sb C ;check carry (9th bit) jmp fdiv24_8_8d sub BARGB1, W setb C jmp fdiv24_8_8e fdiv24_8_8d mov W, BARGB1-w snb C mov BARGB1, W fdiv24_8_8e rl AARGB1 rl AARGB0 dec AEXP sb AARGB0.7 jmp fdiv24_8_8c clrb AARGB0.7 ;replace explicit msb with sign retw #0 ;*********************************************** ; Nikolai http://techref.massmind.org/member/NG--944
See also:
| file: /Techref/scenix/lib/math/div/8by8to24fp-ng_sx.htm, 2KB, , updated: 2004/6/10 14:40, local time: 2012/5/17 02:39,
owner: NG--944,
38.107.179.206:LOG IN |
| ©2012 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://www.sxlist.com/techref/scenix/lib/math/div/8by8to24fp-ng_sx.htm"> SX Microcontroller Math Method - Divide 8 bit int by 8 bit to 24 bit float (AN575)</A> |
| Did you find what you needed? |
|
PIC 16 series Microcontroller Instruction Set Reference. And his Hobby Electronics web site at http://hobby_elec.piclist.com. sales, advertizing, & kind contributors just like you! Please don't rip/copy (here's why Copies of the site on CD are available at minimal cost. |
Robotics nuts!Check out http://users.frii.com/dlc/robotics/projects/botproj.htm from Dennis Clark. This guy ROCKS! He has made (and sells but also releases code, docs, etc...) for a number of cool little robotic modules including whiskers, IR proximity detect and remote control, Sonar proximity detect, PWM, Servo, compass. Most of these use the little PIC 12C508 controller which costs basically nothing and is soooo tiny.The 4 servos, 2400 baud serial servo controller is a wonder of magic and he sells the programmed chip for $8. Wow! |
.