lunes, 27 de febrero de 2012

Entrega 1 Lenguaje Ensamblador

El lenguaje Ensamblador o assembler es un lenguaje de programacion de bajo nivel el cual es utilizado para la programacion de computadoras,microprocesadores,microcontroladores ademas de muchos otros circuitos integrados. Se utiliza una representacion binaria tambien conocida como lenguaje maquina.

Programa generador de una matriz en C
El programa con el cual trabajare es un programa en lenguaje c que nos crea e imprime una matriz de NxM, el codigo es el siguiente.



Creamos el codigo ensamblador apartir del archivo.c utilizando lo siguiente.



Compilamos el codigo de ensamblador, en este caso aparece un error por el use del getch, basta con retirarlo para poder compilar y posteriormente poder crear el ejecutable.



Programa Convertido a Lenguaje Ensamblador
El codigo ensamblador generado es el siguiente, como podemos ver es un codigo bastante extenso ya que de 31 lineas de codigo paso a convertise en un codigo de 170 lineas.



Explicación de algunas lineas:

SEGMENT y ENDS: Definen los segmentos a utilizar.
cfi_startproc:Se utiliza antes de cualquier función que tenga alguna entrada de datos.
Call:Llama a alguna acción próxima a realizarse


Programa de matriz en ensamblador optimizado
Despues de una larga revision de las cosas que eran realmente necesarias y las cuales no lo eran se lograron eliminar 54 lineas de codigo terminando con el siguiente codigo mas limpio y corto.



Por ultimo podemos ver que el programa despues de ser optimizado ejecuta de la misma forma que antes.


Referencias:
http://es.kioskea.net/faq/3284-compilar-un-programa-ensamblador-con-nasm
http://iie.fing.edu.uy/~vagonbar/gcc-make/gcc.htm

miércoles, 22 de febrero de 2012

Sistemas Integrados


¿Que son los sistemas integrados?

Un sistema integrado también conocido como embebido o empotrado es un sistema computacional diseñado para cumplir con algunas funciones especificas de alguna gran máquina, por ejemplo una lavadora se compone de varias partes como por ejemplo motor eléctrico, bombas de agua al igual que cada parte de la lavadora también ocupa un micro-ordenador con los diferentes programas de lavado programados, esta parte es la que se le conoce como un sistema empotrado dentro de la lavadora.

¿En qué lenguaje se programan?
Por lo general los sistemas integrados se pueden programar en lenguaje ensamblador, pero también si se utilizan los compiladores necesarios es posible hacerlo en C,C++ hasta en JAVA puede programar un sistema integrado.

¿Aplicaciones de sistemas integrados?
• Una maquina controladora en una fábrica enfocada por ejemplo al proceso de montaje o producción.
• ATM(cajero)
• Radar de aviones
• Decodificadores de televisión
• Cajas registradoras
Esto son tan solo algunas de tantas aplicaciones donde podemos encontrar sistemas integrados ya que casi en todos los sistemas eléctricos de hoy en día son comunes.

¿Qué ventajas tiene usar sistemas integrados?
• Posibilidad de utilización de sistemas operativos potentes que ya realizan numerosas tareas: comunicaciones por redes de datos, soporte gráfico, concurrencia con lanzamiento de threads, etc. Estos sistemas operativos pueden ser los mismos que para PC compatibles (Linux, Windows, MS-DOS) con fuertes exigencias en hardware o bien ser una versión reducida de los mismos con características orientadas a los PC embebidos.
• Al utilizar dichos sistemas operativos se pueden encontrar fácilmente herramientas de desarrollo software potentes así como numerosos programadores que las dominan, dada la extensión mundial de las aplicaciones para PC compatibles.
• Reducción en el precio de los componentes hardware y software debido a la gran cantidad de PC en el mundo

Bibliografia:
•http://es.wikipedia.org/wiki/Sistema_embebido
•http://www.idose.es/faq/49-sistemas-embebidos/54-que-es-un-sistema-embebido