Lo Que Sea

Páginas: 2 (305 palabras) Publicado: 12 de agosto de 2012
• ;****** Debemos declarar las variables primero, estas son:
• ;***************************************************
• ;****** Factor_A
• ;****** Factor_B
• ;****** Result_H
• ;******Result_L
• ;****** Dividendo_H
• ;****** Dividendo_L
• ;****** Divisor
• ;****** Cociente_H
• ;****** Cociente_L
• ;***************************************************
•  
• ;Se carganPreviamente en Factor_A y Factor_B los valores a multiplicar
• ;El resultado quedará almacenado en Result_H y Result_L
•  
• Multiplicar
• clrf Result_L ;borramos para inicializar
• clrfResult_H
• movf    Factor_B,F ;Si es cero...
• btfsc STATUS,Z ;En Caso que el Factor "B" Sea Cero
• return ;volver con resultado= 0
• movf Factor_A,W ;cargamos el Factor "A"
•Mult_Bucle
• addwf Result_L,F;Sumamos "A", Tantas veces como sea "B"
• btfsc STATUS,C ;Existe Acarreo?...
• incf Result_H,F;...Si. Incrementamos el byte Mayor
• decfszFactor_B,F;Termino; la Multiplicacion?
• goto Mult_Bucle;... No, Seguimos haciendo sumas.
• return ;Si. Volvemos a la rutina principal
•  
•  
• ;Se carga previamente en Dividendo_H y Dividendo_L elvalor total del Dividendo
• ;y en Divisor el valor del divisor. El resultado quedará en Cociente_H y Cociente_L
• ;y el resto quedará en Dividendo_L
• ;(Nota: Dividendo_H y Dividendo_L seránborrados en el proceso de división)
•  
• Dividir
• clrf Cociente_L;Limpiamos el valor del resultado
• clrf Cociente_H
• VerifDiv
• movfw Dividendo_H;Si la parte alta del Dividendo...
•btfss STATUS,Z ;contiene algun valor...
• goto PuedeDividir ;... Podemos dividir
• movfw Divisor ;Si no es el caso...
• subwf Dividendo_L,W ;Verificamos que la parte baja del Dividendo• btfss STATUS,C;...sea mayor que el divisor
• return;En caso de ser menor, la division no se realiza
• PuedeDividir
• incf Cociente_L,F;Aumentamos el valor del cociente bajo
•...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS