aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/avr8/words/log2.asm
blob: 0dcc5113df26922319f560ae9420dbed6434b01c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
; ( n1 -- n2 ) 
; Arithmetics
; logarithm to base 2 or highest set bitnumber
VE_LOG2:
    .dw $ff04
    .db "log2"
    .dw VE_HEAD
    .set VE_HEAD = VE_LOG2
XT_LOG2:
    .dw PFA_LOG2
PFA_LOG2:
    movw zl, tosl
    clr tosh
    ldi tosl, 16
PFA_LOG2_1:
    dec tosl
    brmi PFA_LOG2_2 ; wrong data
    lsl  zl
    rol  zh
    brcc PFA_LOG2_1
    jmp_ DO_NEXT

PFA_LOG2_2:
    dec tosh
    jmp_ DO_NEXT