You are on page 1of 5

UNIVERSIDAD DE COLIMA

FACULTAD DE INGENIERA MECNICA Y ELCTRICA



MATERIA: MICROCONTROLADORES
14/FEBRERO/ 2014

NOMBRE: FRANCISMO GUADALUPE PENSAMIENTOS
HERNANDEZ

PRACTICA: 2 Grupo: 6C


NOMBRE DE LA PRCTICA:
PROGRAMA PARA MULTIPLICAR 2 BYTES CON DOS
BYTES EN HEXADECIMAL





OBJETIVO DE LA PRCTICA

Elaborar un programa en ensamblador para poder llevar a
cabo una multiplicacin hexadecimal.

MATERIALES:
Computadora
Manual de microcontroladores pdf.
Codewarrior IDE







INTRODUCCIN



PROCEDIMIENTO O DESARROLLO

1. Primero se hizo de forma analtica el programa:

1. Cargar directo el valor en hexadecimal.
2. Poner en A el byte menos significativo del dato 1.
3. Colocar en B el byte menos significativo del dato 2.
4. Multiplicacin A y B guardando en A:B
5. Guardar A (a1) y sumar despus.
6. Guardar B (b1) en 420 el valor final del menos significativo.
7. Cargamos en A byte el menos significativo del dato 2.
8. Cargamos en B byte el dato ms significativo del dato 1.
9. Llevamos a cabo la Multiplicacin A y B guardado en A:B.
10. Guardamos A (a2) se sumara despus.
11. Cargamos en A valor (a1) sumndolo con B.
12. Se suma A+B guardando en A
13. Guardamos A (b3).
14. Se limpia para poder usar ADC
15. Cargar en a valor(a2)
16. Se suma el carry+a2+0 (que es el valor de $410)
17. Guarda A (a3).
18. Cargar en A byte el ms significativo de dato 2.
19. Cargar en B byte el menos significativo de dato 1.
20. Guardamos A (a4).
21. Cargar en A el valor b3.
22. Se suman b3+b4
23. Guardar el valor final dos bytes.
24. Cargar en A el valor de a3.
25. Se suman b3+b4.
26. Se suman (b3+b4) carry+a3+a4.
27. Guardar A (a5)
28. Transfiere la bandera del CCR en A.
29. Enmascaramos el carry en caso de que exista.
30. Guardar el valor de carry c1
31. Guardar A (a6) cargar en A el valor de a5.
32. Sumar a5+ b6.
33. Guardar 3 valor final.
34. Sumamos carry (a5+b6)+a6+c1.
35. Guardar el valor 4 para concluir.

2. Ahora vamos hacer el programa en ensamblador.

LDAA $403
LDAB $401
MUL
STAA $410
STAB $420
LDAA $403
LDAB $400
MUL
STAA $411
LDAA $410
ABA
STAA $412
CLR $410
LDAA $411
ADCA $410
STAA $413
LDAA $402
LDAB $401
MUL
STAA $414
LDAA $412
ABA
STAA $421
LDAA $413
ADCA $414
STAA $415
TPA
ANDA #1
STAA $416
LDAA $402
LDAB $400
MUL
STAA $417
LDAA $415
ABA
STAA $422
LDAA $417
ADCA $416
STAA $423

3. Despus corrimos el programa en ensamblador y nos dio
como resultado positivo as que el programa est
terminado.

CUESTIONARIO (TRES PREGUNTAS).

1. Qu se hace para hacer una multiplicacin hexadecimal?
Se realiza igual como si se procediera en una multiplicacin
decimal.

2. Qu se hace si el resultado es igual o mayor a 16?
Se le restan 16 y se pone un acarreo en la columna de la
izquierda.

3. Qu comando se utiliz para enmascarar?
Se utiliz la instruccin ANDA #1


OBSERVACIONES

Al llevar a cabo esta prctica se logr definir varios conceptos para
manipular el lenguaje ensamblador aunque fue algo difcil y laborioso
y se puede notar al ver el algoritmo as como la traduccin en
instrucciones para CodeWarrior.

RESULTADOS
Despus de una serie de pruebas y gran cantidad de errores por fin
se logr llegar al programa deseado el cual obtuvo resultados
positivos ya que el programa corri de forma correcta.

CONCLUSIONES.
Durante la elaboracin de este programa usando el lenguaje
ensamblador se logr llevar acabo una multiplicacin decimal, estos
tipos de programas son muy tiles para practicar ya que vamos
dominando ensamblador.


BIBLIOGRAFA.

B. Williams Arthur (1989) Circuitos lgicos y conversin de A/D y
D/A primera edicin, Mxico, Mc Graw Hill
Ronald J. Tocci (2003) Sistemas Digitales Principios y Aplicaciones
octava edicin, Mxico, Pearson Educacin.
Taub Herbert, & Schilling Donald (1977) Digital Integrated
Electronics International Edition, Singapore, Mac Graw Hill
http://es.scribd.com/doc/127810559/Multiplicacion-y-division-
hexadecimal-docx

You might also like