Páginas

domingo, 12 de febrero de 2012

[Emb Comp Class] Tarea Intro: Lenguaje Ensamblador

Este es mi reporte sobre la Tarea Intro, programar en Lenguaje Ensamblador una rutina, y analizarla para entender un poco sobre las funciones de este lenguaje.

Para este reporte decidí realizar una rutina algo común, es un factorial recursivo. Lo siguiente es el código en C:



Después de eso, hay que compilarlo para obtener el código en Ensamblador, esto con la instrucción:
gcc -S factorial.c
Este es el resultado:



Después, lo siguiente fue optimizar el código, eliminando aquellas instrucciones que no fueran necesarias, la mayoría de las lineas que elimine fueron etiquetas debug y algunos movimientos de memoria innecesarios.
Cuando recién compilamos aparecerán muchas líneas basura, la mayoría comienzan con .cfi, todas esas líneas podemos eliminarlas.
Algunas etiquetas como .file, .type, tambien podemos suprimirlas
También elimine algunos intercambios de registros innecesarios, por ejemplo, el return de la función factorialRec realizaba los siguientes movimientos:
mov %eax, 12(%esp)
mov 12(%esp), %eax
Este procedimiento lo elimine porque no tenia sentido hacer ese intercambio.

El nuevo código en Ensamblador es el siguiente:



Lo siguiente son las diapositivas que explique en clase, lo dejo como evidencia y por si quieren visualizar algo, la mayoria de la informacion que les comparto se encuentra en la siguiente liga: Lenguaje Ensamblador Teoría



Cualquier comentario, sugerencia o aclaracion, dejen un comentario.

Referencias: AQUI

No hay comentarios:

Publicar un comentario