;==========================================================
;16bit division by a constant
;Number_L,Number_H = Number Input 16bit
;Result_H,Result_L = Result
;Remainder =
;==========================================================
Div16_by_144 clrf Result_L
clrf Result_H
;
Divide_Loop movlw .144 ; 10
subwf Number_L,W ; subtract 144 from value
btfss STATUS,C
goto Adjust_Res_H
movwf Number_L
Adjust_Res_L incfsz Result_L,F
goto Divide_Loop
incf Result_H,F
goto Divide_Loop
Adjust_Res_H movwf Temp_L
movf Number_H,W
btfsc STATUS,Z
goto Adjust_Remainder
decf Number_H,F
movf Temp_L,W
movwf Number_L
goto Adjust_Res_L
Adjust_Remaindermovf Number_L,W ; remainder
movwf Remainder
return