PIC Microcontroller Math Method

Fast 8 Bit Square Root

;**********************************************************************
;FAST 8 BIT SQUARE ROOT
;
;Author: Nikolai Golovchenko <golovchenko@mail.ru>
;Date: February 15, 2000
;
;Input and output in w
;ROM - 53
;RAM - 0
;Timing - 15..19 cycles including call and return
;**********************************************************************
Sqrt8f
        addlw -64       ;1
        skpnc
         goto sqrt8_15  ;3
        addlw (64-16)
        skpnc
         goto sqrt4_7   ;6
        addlw (16-4)
        skpnc
         goto sqrt2_3   ;9
        addlw (4-1)
        skpnc
         retlw 1                ;1 (15)
        retlw 0                 ;0 (16)
sqrt2_3
        addlw (4-9)
        skpnc
         retlw 3                ;3 (16)
        retlw 2                 ;2 (17)
sqrt4_7
        addlw (16-36)
        skpnc
         goto sqrt6_7   ;10
        addlw (36-25)
        skpnc
         retlw 5                ;5 (16)
        retlw 4                 ;4 (17)
sqrt6_7
        addlw (36-49)
        skpnc
         retlw 7                ;7 (17)
        retlw 6                 ;6 (18)
sqrt8_15
        addlw (64-144)
        skpnc
         goto sqrt12_15 ;7
        addlw (144-100)
        skpnc
         goto sqrt10_11 ;10
        addlw (100-81)
        skpnc
         retlw 9                ;9 (16)
        retlw 8                 ;8 (17)
sqrt10_11
        addlw (100-121)
        skpnc
         retlw 11               ;11 (17)
        retlw 10                ;10 (18)
sqrt12_15
        addlw (144-196)
        skpnc
         goto sqrt14_15 ;11
        addlw (196-169)
        skpnc
         retlw 13               ;13 (17)
        retlw 12                ;12 (18)
sqrt14_15
        addlw (196-225)
        skpnc
         retlw 15               ;15 (18)
        retlw 14                ;14 (19)
;**********************************************************************