??? 04/15/05 10:48 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#91619 - (a+b)^2=a^2+2*a*b+b^2 Responding to: ???'s previous message |
Sq10bit: ;input in r0,r1; output in r2,r3,r4; both LSB first mov a,r0 ;(a+b)^2=a^2+2*a*b+b^2 mov b,a mul ab mov r2,a mov r3,b mov a,r1 mov b,a mul ab mov r4,a mov a,r1 add a,r1 mov b,r0 mul ab add a,r3 mov r3,a mov a,b addc a,r4 mov r4,a ret23 bytes, 31 cycles including RET, uses only a,b and flags. Could be tweaked a bit more, but don't expect much less. R0-R4 can be replaced by memory positions, but then expect longer code and execution time. Intentionally not commented. Try to understand yourself. Have fun! Jan Waclawek |
Topic | Author | Date |
Fast Square. | 01/01/70 00:00 | |
Square dancing | 01/01/70 00:00 | |
table lookup??? | 01/01/70 00:00 | |
code & algorithm | 01/01/70 00:00 | |
16*16 bit is slower than what I want. | 01/01/70 00:00 | |
How fast? | 01/01/70 00:00 | |
Re: How Fast | 01/01/70 00:00 | |
... probably impossible in 15 cycles | 01/01/70 00:00 | |
why cycles ? | 01/01/70 00:00 | |
Re: Microseconds | 01/01/70 00:00 | |
table lookup | 01/01/70 00:00 | |
Natsemi appnote or CORDIC | 01/01/70 00:00 | |
Natsemi link to appnote | 01/01/70 00:00 | |
(a+b)^2=a^2+2*a*b+b^2 | 01/01/70 00:00 | |
Thats Slow. | 01/01/70 00:00 | |
faster need hardware | 01/01/70 00:00 | |
How fast do you need? | 01/01/70 00:00 | |
Re: How Fast. | 01/01/70 00:00 | |
Just? | 01/01/70 00:00 | |
Incorrect | 01/01/70 00:00 | |
Correct? | 01/01/70 00:00 | |
Whooooopa... Sorry. | 01/01/70 00:00 | |
Thanks | 01/01/70 00:00 | |
I tried... | 01/01/70 00:00 | |
optimum? table driven | 01/01/70 00:00 | |
Jan metod | 01/01/70 00:00 | |
Hardware? | 01/01/70 00:00 | |
CPLD? | 01/01/70 00:00 | |
SILabs f12x does it in hardware | 01/01/70 00:00 | |
Re: SiLabs F12x | 01/01/70 00:00 | |
Price | 01/01/70 00:00 | |
F12x price | 01/01/70 00:00 | |
F12x MAC | 01/01/70 00:00 | |
provided in the datasheet | 01/01/70 00:00 | |
Just out of interest | 01/01/70 00:00 | |
clarification | 01/01/70 00:00 | |
CPLD? | 01/01/70 00:00 | |
too expensive | 01/01/70 00:00 | |
Absolute rubbish Oleg | 01/01/70 00:00 | |
explain | 01/01/70 00:00 | |
your right | 01/01/70 00:00 | |
especially for those... | 01/01/70 00:00 | |
I need to say this.... | 01/01/70 00:00 | |
By the way..... | 01/01/70 00:00 | |
just a demo | 01/01/70 00:00 | |
Hang on. | 01/01/70 00:00 | |
Oh bollocks | 01/01/70 00:00 | |
Well oleg | 01/01/70 00:00 | |
Please check my answer. | 01/01/70 00:00 | |
Here you go | 01/01/70 00:00 | |
You're having me on. | 01/01/70 00:00 | |
Pascal? | 01/01/70 00:00 | |
Pascal? | 01/01/70 00:00 | |
Why ? | 01/01/70 00:00 | |
It was changed because,,, | 01/01/70 00:00 | |
Its because | 01/01/70 00:00 | |
For Jez | 01/01/70 00:00 | |
For Michael | 01/01/70 00:00 | |
simulation | 01/01/70 00:00 | |
Re: Fast Square | 01/01/70 00:00 | |
Prahlad, waithing for a conclusion | 01/01/70 00:00 | |
just an exercise... | 01/01/70 00:00 | |
Tricky | 01/01/70 00:00 | |
Jez asked his cat, I asked my sheep | 01/01/70 00:00 | |
Conclusion. | 01/01/70 00:00 | |
SPI EEPROM![]() | 01/01/70 00:00 |