;Copyryght(c) 2005, Isaac Marino Bavaresco
;PIC24/dsPIC assembly:
;Input value = W10
;Result = W11
isqrt: mov.w #0x0080,W2
mov.w #0,W11
do #7,greater
ior.w W2,W11,W13
mul.uu W13,W13,W4
cp.w W10,W4
bra LTU,Greater
ior.w W2,W11,W11
greater: lsr.w W2,#1,W2
/*
C equivalent:
*/
unsigned short isqrt( unsigned short value )
{
unsigned short result, exp, temp;
for( result = 0, exp = 0x0080; exp != 0; exp >>= 1 )
{
temp = result | exp;
if( temp * temp <= value )
result = temp;
}
return result;
}
unsigned long isqrtl( unsigned long value )
{
unsigned long result, exp, temp;
for( result = 0, exp = 0x00008000; exp != 0; exp >>= 1 )
{
temp = result | exp;
if( temp * temp <= value )
result = temp;
}
return result;
}
| file: /Techref/microchip/math/sqrt/sqrt16-dsPIC-IMB.htm, 1KB, , updated: 2017/7/17 10:33, local time: 2025/10/26 12:45,
216.73.216.188,10-3-157-36:LOG IN
|
| ©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.ecomorder.com/Techref/microchip/math/sqrt/sqrt16-dsPIC-IMB.htm"> PIC Microcontoller Math Method for square root 16 bit dsPIC</A> |
| Did you find what you needed? |
Welcome to ecomorder.com! |
Welcome to massmind.ecomorder.com! |
.