hola, por favor necesito ayuda para multiplicar 2 numero en un pic 16f84
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:  
 
movlw   5
movwf   num1;guardamos los numeros que vamos a multiplicar
movlw   3
movwf   num2
 
movlw   0;ponemos w en 0 
bcf   STATUS,C; limpia el acarreo
 
Rutina:
addwf   num1,w  ; num1 + w se guarda en w
movwf   res1  ; w se pasa a res1
btfss   STATUS,C ; ver si hay acarreo, es decir el numero se paso de 8 bits 
goto   continue     ; ¿no lo hay? entonces vayase a continue
bcf   STATUS,C  ; si lo hay entonces limpie el acarreo
incf   res2,1  ; incremente res2 
continue:
decfsz   num2,1  ; decrementar num2 si es 0 terminar
goto   Rutina; si no es cero saltar a rutina
nop        ; termina la multiplicacion (suma) 
 
 
saludos y espero me entiendas  
