Programación Específica > Microcontroladores
Ayuda Con Multiplicacion En Pic16f84
(1/1)
law:
:scream: hola, por favor necesito ayuda para multiplicar 2 numero en un pic 16f84
Toph:
--- Cita de: "law" ---:scream: hola, por favor necesito ayuda para multiplicar 2 numero en un pic 16f84
--- Fin de la cita ---
Para multiplicar en ensamblador lo que se hace es una suma sucesiva, por ejemplo tenemos 5x3 lo que se hace es sumar el numero cinco, tres veces: 5+5+5
se debe hacer sumar el num1 y guardarlo y a la vez decrementar num2 ya que actua como contador al llegar a cero es que ya se completo la suma (multiplicacion)
algo que hay que tener en cuenta es que supongo son dos numeros de 8 bits en algunos casos el resultado pasara los 8 bits por lo tanto debe estar pendiente de esto, por eso usamos el acarreo y guardamos el resultado en dos localidades res1 y res2 por ejemplo el 4hx3h te da Ch no pasa los 8 bits el resultado quedara res1= Ch y res2= 0 pero si fuera FFh x 3h el resultado da 2FDh entonces el resultado queda en res1=FD y res2= 2h
aqui la rutina:
--- Código: Text --- movlw 5movwf num1;guardamos los numeros que vamos a multiplicarmovlw 3movwf num2 movlw 0;ponemos w en 0 bcf STATUS,C; limpia el acarreo Rutina:addwf num1,w ; num1 + w se guarda en wmovwf res1 ; w se pasa a res1btfss STATUS,C ; ver si hay acarreo, es decir el numero se paso de 8 bits goto continue ; ¿no lo hay? entonces vayase a continuebcf STATUS,C ; si lo hay entonces limpie el acarreoincf res2,1 ; incremente res2 continue:decfsz num2,1 ; decrementar num2 si es 0 terminargoto Rutina; si no es cero saltar a rutinanop ; termina la multiplicacion (suma)
saludos y espero me entiendas :hola:
Navegación
Ir a la versión completa