Bienvenido: Ingresar
location: Diferencias para "WebHome/TrabajosPracticos/PracticoASM5"
Diferencias entre las revisiones 4 y 19 (abarca 15 versiones)
Versión 4 con fecha 2010-08-24 19:02:24
Tamaño: 3041
Comentario:
Versión 19 con fecha 2012-08-22 19:13:29
Tamaño: 3419
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 1: Línea 1:
= Trabajo Práctico Nro.4 Assembler y C = ## page was renamed from WebHome/TrabajosPracticos/PracticoASM4
## page was renamed from TrabajosPracticos/PracticoASM4
## page was renamed from PracticoASM4
= Trabajo Práctico Nro. 5 Assembler y C =
Línea 5: Línea 8:
Tendremos como el Practico anterior un directorio con cada ejercicio conteniendo lo siguiente Tendremos un directorio con cada ejercicio conteniendo lo siguiente
Línea 7: Línea 10:
Archivos de Entrada '''Archivos de Entrada'''
Línea 12: Línea 15:
Archivo de configuración
   * '''Makefile''' al igual que en el pctico 1, necesitamos un archivo de configuración de nuestro proyecto, cada archivo .c adicional que agreguemos a nuestro proyecto deberá ser notificado al make, agregando el nombre correspondiente al fichero dentro de la lista SOURCE.
   * '''Linker Script''' en este práctico, se requiere una especificación mas detallada del uso de memoria, es por eso que necesitaremos un archivo adicional de configuración para ser usado por el linker 
'''Archivo de configuración'''
   * '''Makefile''' es el archivo administrador de nuestro proyecto, cada archivo .c o .s que contenga nuestro proyecto debe ser especificado en la lista SOURCE dentro de este archivo.
   * '''Linker Script''' en este práctico, se requiere una especificación mas detallada del uso de memoria, es por eso que necesitaremos un archivo adicional de configuración para ser usado por el linker.
Línea 16: Línea 19:
Archivos de salida generados por make, serán los mismo que en el anterior ejercicio, sumándose los .o de cada archivo .c '''Archivos de salida generados por make'''
Línea 20: Línea 23:
   * '''*.o''' archivos compilados de cada archivo extra    * '''*.o''' archivos compilados de cada archivo extra.
Línea 22: Línea 25:
Archivos general para todos los ejemplos '''Archivos general para todos los ejemplos'''

Aquí se pueden obtener ejemplos de los diferentes archivos necesarios para un proyecto.
Línea 26: Línea 32:
   * Archivo de cabecera para el main.c ([[attachment:main.h | main.h]])
Línea 33: Línea 40:
archivo fuente [[attachment:cadena_main.c | main.c]] archivo fuente [[attachment:main.c | main.c]]
Línea 39: Línea 46:
archivo fuente main.c El programa será realizado en C, luego reescribirlo en asembler, comparar finalmente los resultados del programa en C dado por el compilador y el programa escrito directamente en asembler
Línea 41: Línea 48:
archivo fuente [[attachment:burbuja_main.c | main.c]]
  
Línea 43: Línea 52:
Realizar un programa en assembler que calcule el factorial de un número por el método recursivo, el envío de parámetros y el almacenamiento de datos temporales, se deberá realizar por medio de un stack de tipo Full Descend. Realizar un programa en asembler que calcule el factorial de un número por el método recursivo, el almacenamiento de datos temporales se deberá realizar por medio de un stack de tipo Full Descend.
Línea 47: Línea 56:
   * función "factorial", la cual implementará el calculo por el método recursivo.    * función "factorial", la cual implementará el cálculo por el método recursivo.
Línea 49: Línea 58:
archivo fuente ex1.s archivo fuente [[attachment:factorial_ex1.s | ex1.s]]

Trabajo Práctico Nro. 5 Assembler y C

Para los ejercicios en esta etapa deberemos utilizar lo siguiente

Tendremos un directorio con cada ejercicio conteniendo lo siguiente

Archivos de Entrada

  • head.s es el archivo fuente en assembler, en este caso cumplirá principalmente el rol de STARTUP, es decir, configurará el hardware de microcontrolador, asignará los valores iniciales de las variables globales que así lo requieran y le pasará el mando al main del C, puede tener adicionalmente alguna función extra para ser llamada desde el C.

  • main.c es el archivo de arranque del C, contendrá el main() {} de nuestro programa.

  • *.c según el práctico podrá haber algún archivo de funciones extra, los cuales serán llamado desde el C.

Archivo de configuración

  • Makefile es el archivo administrador de nuestro proyecto, cada archivo .c o .s que contenga nuestro proyecto deberá ser especificado en la lista SOURCE dentro de este archivo.

  • Linker Script en este práctico, se requiere una especificación mas detallada del uso de memoria, es por eso que necesitaremos un archivo adicional de configuración para ser usado por el linker.

Archivos de salida generados por make

  • ex1.elf archivo binario.

  • ex1.hex archivo binario formato Intel, usado para grabar el microcontrolador.

  • ex1.lst archivo con el código fuente y el binario desensamblado.

  • *.o archivos compilados de cada archivo extra.

Archivos general para todos los ejemplos

Aquí se pueden obtener ejemplos de los diferentes archivos necesarios para un proyecto.

Ejercicio 1

Realizar un programa que dada una cadena con terminación nula guardada en "cadena", la pase a mayúscula, guardando el resultado en el mismo vector "cadena"

nota:la cadena de entrada solo contendrá valores alfabéticos o espacio en blanco ('a' - 'z','A' - 'Z')

archivo fuente main.c

Ejercicio 2

Realizar un programa que dada una cadena de 20 bytes ordenarlos de menor a mayor por el método de burbuja

El programa será realizado en C, luego reescribirlo en asembler, comparar finalmente los resultados del programa en C dado por el compilador y el programa escrito directamente en asembler

archivo fuente main.c

Ejercicio 3

Realizar un programa en asembler que calcule el factorial de un número por el método recursivo, el almacenamiento de datos temporales se deberá realizar por medio de un stack de tipo Full Descend.

El programa estará constituido por dos partes.

  • programa principal el cual llamará a una función denominada "factorial" con el numero a calcular su factorial.
  • función "factorial", la cual implementará el cálculo por el método recursivo.

archivo fuente ex1.s

UntitledWiki: WebHome/TrabajosPracticos/PracticoASM5 (última edición 2012-08-22 19:13:29 efectuada por GuillermoSteiner)