Page 1 of 1

### [DM16] Raising number to a power

Posted: Mon Oct 12, 2020 3:24 am
I'm still learning the machine and found that it doesn't have a function to raise a number to a power.
As such, I thought I would take a stab at trying to code up a function to do exactly that.

It's got a few flaws so I'm still trying to work out how to work around them. I used ABS to force the base number into the LSTx register for the loop. This means it only works for positive base numbers.

Happy to hear any suggestions - just note I'm new to this and I'm still learning what's possible with the DM16. I'm half expecting that there is something obvious I missed with this attempt.

Code: Select all

``````Command			Program Code
[g][LBL] E		001 - 43,22, E		Example program start 5^4 = 5 [Enter] 4 [GSB] E
[DEC]			002 - 24		Ensure in DEC mode
1			003 - 1
[-] 			004 - 30		Subtract 1 from Exponent (used in loop)
[f][I]  		005 - 44 32		Store modified Exponent into I Register
[R Dwn]			006 - 33		Roll base number to X Register
[g][ABS]		007 - 43 8		Force base number into Lstx Register
[g][LBL] 0		008 - 43,22, 0		Loop '0' start
[g][LSTx]		009 - 43 36
[X] 			010 - 20		Multiply result by Base number
[g][DSZ]		011 - 43 23		Decrement the I register and
[GTO] 0			012 - 22  0		Repeat until I register = 0
[g][RTN]		013 - 43 21
``````