Está en la página 1de 4

Introduccin a AVR-Studio

1. Introduccin y objetivos
- Presentar el entorno de programacin y depuracin de microcontroladores de ATMEL llamado AVRSTUDIO.
- Simular y depurar programas escritos en lenguaje ensamblador para el microcontrolador
ATMEGA328P.
AVR.STUDIO puede descargarse gratuitamente desde las pginas del fabricante de ATMEL en:
http://www.atmel.com
Durante la sesin de laboratorio se debe disponer de los ficheros indicados en la tabla 1.
Nombre del fichero

Contenido

suma.asm

Programa que permite calcular la suma de dos nmeros de 32 bits. A


completar por el alumno.

suma_tabla.asm

Programa para calcular la suma de una tabla de nmeros con signo de


8 bits.

compara.asm

Programa para calcular los elementos mayor y menor de una tabla de


nmeros con signo de 8 bits. A completar por el alumno.
Tabla 1: Ficheros necesarios para realizar la prctica

2. Estudio terico
Se van a utilizar tres programas en lenguaje ensamblador. Estos estn disponibles en el directorio
correspondiente a esta prctica en la web de la asignatura.
A continuacin se presentan algunos detalles de los mismos:
1. Programa SUMA: (objetivos: utilizar los punteros del microcontrolador, introducir la programacin
mediante subrutinas y presentar un mtodo para la inicializacin de datos en memoria)
Realizaremos una subrutina suma32 en ensamblador del AVR que permitir sumar dos
nmeros sin signo de 32 bits. Los 2 sumandos estn en las posiciones de memoria apuntadas
por Y e Y+4. El resultado de la suma se almacena a partir de Z. Se recuerda que los datos se
almacenan en memoria en little-endian, es decir la parte ms significativa del dato en la
direccin de valor mayor.

A31:24 A23:16 A15:8 A7:0


B31:24 B23:16 B15:8 B7:0
S31:24 S23:16 S15:8 S7:0

memoria

Y
R29 R28

Y+4

8 bits
A7:0
A15:8
A23:16
A31:24
B7:0
B15:8
B23:16
B31:24

}
}

S7:0
S15:8
S23:16
S31:24

dato A

dato B

R3

R2

R1

R0

R7

R6

R5

R4

R31 R30

resultado

Realizacin del programa:


El programa del fichero suma.asm consta fundamentalmente de tres partes:
- programa principal: desde el que se llama a las dos subrutinas que se mencionan a
continuacin,
- subrutina iniciaSuma: en la que se escriben en la memoria los dos datos de 32 bits,
- subrutina suma32: en la que se suman los dos datos y se almacena el resultado.

2. Programa SUMA_TABLA: (objetivos: presentar otro mtodo para la inicializacin de datos en


memoria y perfeccionar el uso de punteros y bucles)
Realizaremos una subrutina iniciaTabla en ensamblador del AVR que permitir trasladar una
tabla desde la memoria de programa a la memoria de datos. Este traslado lo hacemos, ya que
no es posible utilizar la directiva .db (define constante en memoria) directamente sobre la
memoria de datos, slo es posible usarla sobre la memoria de programa. Hay que tener
encuenta la diferencia del ancho de ambas memorias, cada palabra de la memoria de programa
necesitar ser trasladada sobre dos palabras de la memoria de datos.

16 bits

8 bits

memoria

memoria

de
programa

de
datos

X
R27 R26

R31 R30

tablatemp

tabla

..
.

..
.

Realizacin del programa:


El programa del fichero suma_tabla.asm consta fundamentalmente de tres partes:
- definicin de la tabla en la memoria de programa mediante la directiva ".db",
- programa principal: desde el que se llama a la subrutina iniciaTabla y, a continuacin, se
realiza la suma de elementos mediante un bucle,
- subrutina iniciaTabla: en la que se copia la tabla desde la memoria de programa a la memoria
de datos.

3. Programa COMPARA: (objetivo: afianzar los conceptos ya explicados y utilizar las instrucciones de
comparacin)
Realizaremos una subrutina compara en ensamblador del AVR que permitir localizar los
elementos mayor y menor de una tabla de datos con signo de 8 bits.

Realizacin del programa:


El programa del fichero compara.asm consta fundamentalmente de dos partes:
- programa principal: desde el que se inicializa la tabla en memoria por cualquiera de los
mtodos ya presentados en los programas anteriores y a continuacin se realiza la bsqueda
de los elementos mayor y menor,
- subrutinas y definiciones necesarias.

3. Estudio experimental
El estudio experimental se divide en dos bloques: el primero consiste en utilizar los dos primeros
programas del estudio terico para familiarizarse con el entorno de desarrollo AVR-STUDIO. Para
ello, necesitar completar el programa suma.asm y comprender el programa suma_tabla.asm. El
segundo bloque se centra en realizar modificaciones a dichos programas para realizar operaciones
ms complejas y generar el tercer programa: compara.asm.
Bloque I:
- Siga los pasos mostrados en la "gua de uso del programa" para cargar y simular los
programas.
- Complete el programa suma.asm y compruebe que funciona correctamente. Para ello sume
las cantidades $12345678 y $09ABCDEF. Anote el resultado.
- Ejecute el programa suma_tabla.asm y compruebe que funciona correctamente. Anote la tabla
que se ha utilizado en el programa y el resultado final de la suma. Muestre los valores de los
registros R0, R1, temp y R2 para las 4 primeras iteraciones del bucle de suma y explique el
procedimiento seguido para la suma y la necesidad de estos registros.
Bloque II
- Proponga dos ejemplos ms para el programa suma.asm y compruebe nuevamente el
resultado. Anote ejemplos y resultados.
- Modifique el programa suma.asm para que en caso de desbordamiento de la suma devuelva el
valor $FEFEFEFE como resultado y el carry se devuelva a 1. Comprubelo. Anote brevemente
las modificiones realizadas y muestre el programa a su profesor.
- Pruebe el programa suma_tabla.asm para las siguientes tablas de datos y anote el resultado
obtenido.
Tabla
10, 4, -1, 0 , 0, 6, 3, 10, 100, -100, 24, 23, -56, 4, 15, 16
-12, 10, -14, 12 , 100, -98, -10, 0, 0 , 1, 1, 0 , -10 , 12, 0, 6
100, 90, 80, 70 , 60, 50 ,40 ,30, 20, 10, 0

- Justifique el resultado que se obtendra para la siguiente tabla de valores y anote sus
conclusiones.
Tabla
100,200,300

- Complete el programa compara.asm y compruebe que funciona correctamente. Anote la tabla


que ha utilizado en el programa y el resultado final de la comparacin.

También podría gustarte