miércoles, 22 de febrero de 2012

Tarea Intro - Lenguaje Ensamblador

Para la tarea introductoria de Cómputo Integrado, escogí realizar algunos programas, cada uno aumentando un poco gradualmente la dificultad para poder aprender a hacer códigos sencillos en ensamblador desde cero. En esta entrada, explicaré cada paso del proceso, y colocaré los códigos que me ayudaron a entender mejor sobre el lenguaje ensamblador.

Presentación




Proceso


Como mencioné anteriormente, para realizar la tarea introductoria, realicé diferentes programas con poca dificultad en C, pero aumentando poco a poco su dificultad en ensamblador. Esto lo consideré ya que inicialmente no comprendía absolutamente nada del código que compilaba desde C. Por lo tanto inicie desde eso, moví líneas, quite código, agregué algunas cosas solo para ver como se comportaba, y continué así hasta que logre realizar un código desde cero.

Parte 1: Compilar desde C

Como ya expliqué como compilar desde C a ensamblador en un post anterior para laboratorio, omitiré esa parte, e iré directamente al código.

El código que use para esta parte o fase de la tarea, fue un simple hola mundo, nada fuera de lo común. En el aprendí que al inicio de cada código de ensamblador, se reserva espacio para las variables, y aprendí como es que funcionan las impresiones en el mismo, moviendo el string deseado al inicio del stack. El código es el siguiente:



Parte 2: Modificación Mínima

Para la parte 2, compile un código desde C a ensamblador, y después lo modifiqué un poco para ver como se comportaba. Para esto use un simple código en C que imprimía los números pares entre 1 y 10. El código es el siguiente:


Parte 3: Modificación Moderada


En esta parte, realicé modificaciones al código anterior, para que imprimiera un pequeño mensaje avisando cuando es par y cuando impar. Las modificaciones fueron hechas con el fin de saber si podía codificar yo mismo, es decir, si ya podía entender lo suficiente para saber donde poner qué. Por lo tanto, el código puede ser mucho más óptimo, De cualquier forma, el código es el siguiente:


Parte 4: Programación desde cero

Para terminar, hicé lo que esperaba como resultado del proceso, hacer un programa en lenguaje ensamblador desde cero. Inicialmente la programación me tomo cerca de una hora en tener lo básico, pero me tardé más de  2 horas en encontrar un error. El programa fue la impresión de la serie de fibonacci, el cual explique solamente el equivalente en operaciones en otros lenguajes de alto nivel, como se puede ver:

No hay comentarios:

Publicar un comentario