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&#59;guardamos los numeros que vamos a multiplicarmovlw   3movwf   num2 movlw   0&#59;ponemos w en 0 bcf   STATUS,C&#59; limpia el acarreo Rutina:addwf   num1,w  &#59; num1 + w se guarda en wmovwf   res1  &#59; w se pasa a res1btfss   STATUS,C &#59; ver si hay acarreo, es decir el numero se paso de 8 bits goto   continue     &#59; ¿no lo hay? entonces vayase a continuebcf   STATUS,C  &#59; si lo hay entonces limpie el acarreoincf   res2,1  &#59; incremente res2 continue:decfsz   num2,1  &#59; decrementar num2 si es 0 terminargoto   Rutina; si no es cero saltar a rutinanop        &#59; termina la multiplicacion (suma)   
saludos y espero me entiendas  :hola:

Navegación

[0] Índice de Mensajes

Ir a la versión completa