Algoritmos

Páginas: 5 (1097 palabras) Publicado: 16 de mayo de 2012
1. ALGORITMO DE LA MULTIPLICACIÓN (Sumas Sucesivas) 16 BITS
MULTIPLICANDO X
MULTIPLICADOR =
RESULTADO
MULTIPLICANDO
MULTIPLICADOR
RESULTADO

0X40

0X41

CONTADOR
COPIA MULTIPLICADOR

0X22
0X32
0X42

0X23
0X33
0X43

CONTADOR
COPIA MUL.

0X25
0X35

0X36

Para este programa recomiendo realicen lo mismo que hicimos en el salón para el
algoritmo de la multiplicación de8 bits de ir anotando paso por paso los resultados en binario y
hexadecimal del multiplicador desplazado y del resultado cuando se suma el multiplicando y
cuando se desplaza todo el resultado, esto con el fin de que si no les funciona correctamente
puedan ir observando donde están los errores, de esta forma pueden ir depurando errores al
observar si van bien o no.
2. ALGORITMO DE LA DIVISION(Restas Sucesivas) 8 BITS
INTRODUCCION:
Debido a que nuestro microcontrolador (PIC16F886), no cuenta con instrucciones para
efectuar divisiones debemos hacer uso de un algoritmo que consiste en realizar restas sucesivas.
Dicho algoritmo opera de la siguiente forma teniendo en cuenta las principales partes en
una división:
RESULTADO
DIVISOR

DIVIDENDO
RESIDUO

55 FF

1
0
1
0
0
00

1
1
0
1
1
1
0

1
0
1
0
0
0
0

1
1
0
1
1
1
0

1
0
1
0
0
0
0

1
1
0
1
1
1
0

1
0
1
0
0
0
0

1
1
0
1
1
1
0

=
=
=

FF 1
55
AA 2
55
55 3
55
00

2 5 CB

1
0
1
0
1
0
0
0
0
0
0

1
0
0
0
0
0
1
0
0
0
0

0
1
1
1
0
1
0
1
1
1
0

0
0
0
0
0
0
1
0
1
0
1

1
0
0
0
0
0
1
0
0
0
0

01
1
1
0
1
1
1
1
1
0

1
0
1
0
0
0
0
0
1
0
1

1
1
0
1
1
1
0
1
1
1
0

=
=
=
=
=

CB
25
A6
25
81
25
5C
25
37
25
12

1
2
3
4
5

Para realizar la explicación la voy a hacer con la ayuda delos dos ejemplos de arriba, el
primero de ellos es una división entera del dividendo FF entre el divisor 55, dando esta división en
el resultado 03 y enel residuo 00.
El segundo de ellos es una división no entera del dividendo CB entre el divisor 25, dando
esta división en el resultado 05 y en el residuo 12.
RESULTADO=R, RESIDUO=r, DIVISOR=D y DIVIDENDO=d.
Para el primer ejemplo:
1. Comenzamos limpiando nuestros registros de resultado. (R=00, r=00, D=55 y d=FF)
2. Pasamos el valor del dividendo en el residuo. (R=00, r=FF, D=55 y d=FF)
3.Verificamos que el valor del residuo sea mayor al valor del dividendo.
SI)-Incrementamos una vez nuestro registro de resultado(R=01, r=FF, D=55 y d=FF),
restamos al residuo una vez el divisor y guardamos el resultado en el residuo
(R=01, r=AA, D=55 y d=FF).
NO)-Fin de nuestro programa por que como el valor del residuo ya es menor al
divisor ya no podemos dividir. (R=03, r=00, D=55 y d=FF).Para el segundo ejemplo:
Se aplica lo mismo la diferencia es que nuestro residuo no va a ser 00 sino 12.
NOTA: Para comprobar las divisiones y por lo tanto que el programa funciona se aplica la siguiente
formula: RESULTADO X DIVISOR + RESIDUO = DIVIDENDO, si no coincide el valor que les de al del
dividendo tienen mal su programa, este programa es muy sencillo y no tienen que tenercomplicaciones.
RESULTADO
0X21
DIVISOR
0X30 DIVIDENDO
0X31
RESIDUO
0X41
3. ALGORITMO DE LA DIVISION (Restas Sucesivas) 16 BITS
Este programa es idéntico al anterior con la diferencia de que las restas son de 16 bits y
deben cuidar el borrow o préstamo que hace el bit 0 de la parte alta al bit 7 de la parte
baja, auxíliense de sus programas anteriores para hacerlo.

DIVISOR

0X30

0X31RESULTADO
DIVIDENDO
RESIDUO

0X21
0X31
0X41

0X22
0X32
0X42

4. COMPROBACION DE LAS FUNCIONES LOGICAS
Este programa tiene la finalidad de verificar el funcionamiento de las instrucciones que
tiene el PIC16F886 para realizar operaciones lógicas (OR, AND, XOR y NOT).
VALOR1
VALOR2
RESULTADO1
VALOR3
RESULTADO2
VALOR4
RESULTADO3
RESULTADO4

0X20
0X30
0X40
0X50
0X60
0X70
0X80...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algoritmo
  • Algoritmo
  • Algoritmos
  • Algoritmos
  • Algoritmos
  • Algoritmos
  • Algoritmos
  • Algoritmos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS