Power FunctionΒΆ

Computes x^n using repeated multiplication.

 1; Power: compute 3^4
 2; Output: R16 = 81
 3
 4start:
 5    ldi r16, 3        ; base = 3
 6    ldi r17, 4        ; exp = 4
 7    
 8    ; save base
 9    mov r18, r16
10    
11    ; if exp == 0, result = 1
12    cpi r17, 0
13    breq exp_zero
14    
15    ; if exp == 1, done
16    cpi r17, 1
17    breq done
18    
19    ; counter = 1
20    ldi r19, 1
21
22loop:
23    ; result *= base
24    mul r16, r18
25    
26    ; counter++
27    inc r19
28    
29    ; continue if counter < exp
30    cp r19, r17
31    brlt loop
32    
33    jmp done
34
35exp_zero:
36    ldi r16, 1
37
38done:
39    jmp done

Demonstrates exponentiation through iteration.