Programacion en ensamblador msp430

Microcontroladores Practica #2 Modos de direccionamiento Ramos Castellanos Ángel Alexis Zetina Martinez Enrique Equipo L

Views 138 Downloads 0 File size 408KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Microcontroladores Practica #2 Modos de direccionamiento Ramos Castellanos Ángel Alexis Zetina Martinez Enrique Equipo L7

Resumen Esta práctica se utilizará el microcontrolador MSP430FR5994 programando en leguaje ensamblador y su comportamiento con operaciones aritméticas básicas como son la suma y la resta con 64 bits y como se deben escribir para que pueda trabajar de forma correcta. Se hará uso de funciones para específicas para contar su acarreo y se puedan realizar estas operaciones de forma practica y correcta, se hará uso de herramientas del software utilizado para correr el programa paso a paso y verificar que se esté ejecutando correctamente en cada registro y emplearemos una calculadora especial que soporte código en hexadecimal para comparar los resultados obtenidos y verificar si son correctos o si existe algún error al momento de escribir elaborar el código.

Introducción Modos de direccionamiento El modo de direccionamiento especifica la forma de interpretar la información contenida en cada campo de operando para localizar, en base a esta información, el operando. Los ordenadores utilizan técnicas de direccionamiento con los siguientes fines: •



Dar versatilidad de programación al usuario proporcionando facilidades tales como índices, direccionamientos indirectos, etc., esta versatilidad nos servirá para manejar es-tractoras de datos complejas como vectores, matrices, etc. Reducir el número de bits del campo de operando

Definición: Los modos de direccionamiento de un procesador son las diferentes formas de transformación del campo de operando de la instrucción en la dirección del operando. Direccionamiento Absoluto Este es el modo de direccionamiento más sencillo. El campo de dirección no necesita transformación alguna para dar la dirección efectiva, es decir la función que transforma el campo de operando en la dirección efectiva es la identidad. Esto

significa que el campo de operando es ya la dirección efectiva. Este direccionamiento sólo se usa en ordenadores pequeños en que el programa siempre se sitúa en la misma zona de memoria ya que dificulta la relocalización de los programas, es decir que el código de los programas no dependa de su situación en memoria.

Direccionamiento simbólico Lo que hace este modo de direccionamiento es mover el contador del programa más los desplazamientos que le indiquemos es decir voy a utilizar "Pc", que es el contador del programa y que varía conforme avanza el programa por lo cual su valor es variable, nosotros solo podemos diseccionar la dirección de origen dando le desplazamientos a la dirección de origen y a la dirección de destino.

Desarrollo Material utilizado: • • •

Computadora Microcontrolador MSP430FR5994 Software Code Composer Studio

En esta practica se realizaron operaciones aritméticas de 64 bits en el microcontrolador en lenguaje ensamblador y se hizo uso de las siguientes instrucciones: • • • • •

MOV fuente, destino fuente → destino ADD S,D S+D → D Modifica C V N Z ADDC S,D S+D+C → D Modifica C V N Z SUB S,D D-S → D Modifica C V N Z SUBC S,D D-S-C → D Modifica C V N Z

Sabiendo lo anterior, se procedió a escribir el código empezando por declarar dos constantes del programa en memoria FLASH. Se utilizaron dos del tipo long para usar 32 bits en cada uno y poder formar una constante de 64 bits como se ve en “Figura 1”.

Figura 1: Declaración de constantes

Comenzamos moviendo los primeros 16 bits de la constante A a el registro 4 para proceder a hacer la suma de los primeros 16 bits de la constante B utilizando el modo de direccionamiento absoluto. Después, se hizo lo mismo, pero ahora con las siguientes direcciones de memoria usadas por las constantes, utilizando el modo de direccionamiento simbólico y la suma addc que incluye el valor de la bandera de acarreo.

Figura 2: Cuerpo del código.

Por último, se realizó una resta con los mismos valores de las constantes y utilizando el código anterior, pero cambiando las operaciones add y addc por sub y subc respectivamente obteniendo lo siguiente “Figura 3”

Figura 3: Código completo

Resultados Lo resultante de la ejecución del código en el microcontrolador fue lo siguiente:

Figura 4: Valores finales de los registros después de la ejecución del código.

Como podemos observar en “Figura 4”, los registros r4, r5, r6 y r7 fueron los utilizados y modificados por el código y el numero resultante, entonces, seria 0xEF002232ACF13568

Se corroboro los resultados con ayuda de una calculadora que trabaja en lenguaje hexadecimal “Figura 5” y los resultados que arrojo fueron: “Figura 6”

Figura 5:Numeros introducidos a la calculadora de windows

Figura 6: Resultado arrojado

El resultado de el código para la resta de las constantes fue el siguiente número 0x9988887777777788

Figura 6: Resultados de la resta

Comprobando con la calculadora Figura 7: Valores introducidos a la calculadora

Figura 8: Resultado de la calculadora

Conclusiones Enrique Zetina Martinez Es esta practica trabajamos con el microcontrolador y realizamos las operaciones de suma y resta. El microcontrolador que trabajamos no acepta la cantidad de bits completa por lo que se tenían que separan en dos partes y así trabajarlo. Al verificar los resultados nos dimos cuenta de que los metimos de forma errónea a la calculadora ya que los introducimos al revés, pero con ayuda del maestro nos explico como es que el microcontrolador los lee y nos dimos cuenta que el código estaba bien y por esa razón en los registros nos daba el resultado con los bits invertidos. Ángel Alexis Ramos Castellanos Es de gran importancia conocer el microcontrolador con el que se trabaja ya que cada uno tiene diferentes características que hacen que el utilizarlo sea diferente, en este caso, el microcontrolador utilizado es de 16 bits por lo cual no puede trabajar con operaciones más grandes que eso, así que recurrimos a la separación de esta constante para poder conseguir el resultado deseado. De igual manera es de suma importancia conocer los modos de direccionamiento y las operaciones en lenguaje ensamblador para poder realizar las instrucciones que queramos.

Referencias Aguilar, M. M. (05 de Marzo de 2018). Instituto Tecnologico de Morelia. Obtenido de http://sagitario.itmorelia.edu.mx/mfraga/ Desconocido. (28 de Agosto de 2016). Univercidad de Valladolid. Obtenido de https://www.infor.uva.es/~bastida/OC/modos.pdf