inicio
MOVLW 0H
MOVWF COCIENH ; Parte alta del cocciente
MOVWF COCIENL ; Parte baja del cociente
MOVLW 89h ;
MOVWF DIVIDEL
MOVLW 90h
MOVWF DIVIDEH
MOVLW 5H
MOVWF DIVISOR
INCF DIVIDEH,F ; HAY QUE INCREMENTAR LA PARTE ALTA DE DIVIDENDO UNA UNIDAD.
MOVFF DIVIDEL,TEMP1
LAZO
MOVF DIVISOR,W
SUBWF TEMP1,W ; F - W > DESTINO WORK === DIVIDENDO - DIVISOR -> WORK.
BTFSS STATUS,C ; CHEQUEA SI LA RESTA A SIDO NEGATIVA Y SI ES ASI SALTA.
BRA SALIDA
MOVWF TEMP1 ; SI LA OPERACION NO HA SIDO CERO METE LA RESTA EN TEMP1
INCFSZ COCIENL,F ; INCREMENTA EL COCIENTE.
BRA LAZO
CALL INCR_COCIENH
BRA LAZO
SALIDA
MOVWF TEMP1 ; GUARDA EL RESULTADO DE WORK EN TEMP1
DCFSNZ DIVIDEH ; DECREMENTA LA PARTE ALTA DEL DIVIDENDO Y SI ES CERO NO SALTES
BRA EXIT
INCFSZ COCIENL,F ; INCREMENTA EL COCIENTE.
BRA LAZO
CALL INCR_COCIENH
BRA LAZO
INCR_COCIENH
INCF COCIENH
RETURN
EXIT
NOP
GOTO EXIT
END