Test Foro de elhacker.net SMF 2.1

Programación => Programación General => ASM => Mensaje iniciado por: bpenword en 13 Agosto 2020, 06:19 AM

Título: AYUDA CON LA DIVISIÓN CON RRF
Publicado por: bpenword en 13 Agosto 2020, 06:19 AM
Bueno recién estudiando ensamblador con pic quise probar manejar un poco las operaciones por condición. Quiero dividir cierto numero entre 2 ó 4 dependiendo de si es mayor a otro. Me parece que dividir corriendo los bits, con la instrucción RRF, seria mas fácil.

;;;;;;;CONDICION;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVF NUMB3,0
SUBWF TOTAL,W ;COMPARO NUMB3 CON TOTAL
BTFSC STATUS,Z
GOTO IGUALES
BTFSC STATUS,C
GOTO MAYOR
GOTO MENOR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

IGUALES
MOVF TOTAL,0
MOVWF PORTD
GOTO PRINCIPAL

MAYOR
MOVF TOTAL,0
MOVWF MP
RRF MP,1 ;DIVIDO MP ENTRE 2
MOVF MP,0
MOVWF PORTD
GOTO PRINCIPAL

MENOR
MOVF TOTAL,0
MOVWF NP
RRF NP,1 ;DIVIDO NP ENTRE 4
RRF NP,1
MOVF NP,0
MOVWF PORTD
GOTO PRINCIPAL

END
pero sucede que el pic parece saltar nada mas a la parte de si el numero es menor; que estoy implementando mal la parte de la condición o uso mal la instrucción RRF.
gracias
RESUELTO: hacia falta poner el bit C de status en 0 antes de poner cada RRF