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