prolema de multiplicacion en 16F877A

necesito multiplicar 19 por 8, ahora podria crear un bucle k me sume las 8 veces 19, pero me tomaria mas de 3 pasos realizar la multiplicacion, y es eso lo que necesito, hacerla en 3 pasos, si alguine me puede ayudar se los agradeceria....

saludos... :)
 
multiplicar por 8 es el equivalente a recorrer 3 veces un número hacia la izquierda, así que para hacerlo en tres pasos debes hacer algo así

Código:
movlw	d'19'
movwf	CUENTA
rlf	CUENTA,f
rlf	CUENTA,f
rlf	CUENTA,f

esto es, primero cargas el numero 19 a W y luego lo mandas a una variable, en este caso CUENTA, posteriormente con la instruccion rlf se rota el número hacia la izquierda, eso es el equivalente de multiplicarlo por dos, despues al volver a rotar es como si se multiplicara por 4, al final se rota 3 veces, eso es lo mismo a multiplicar por 8
 
cierto. Nadamas que seria bueno borrar el carry antes del programa
Código:
movlw   d'19'
movwf   CUENTA
clrf  STATUS,C
rlf   CUENTA,f
rlf   CUENTA,f
rlf   CUENTA,f
 
Atrás
Arriba