Para esta tarea de cómputo integrado decidí hacer el sencillo programa de el Triángulo de Pascal, este programa lo realicé en C. El programa lo hice lo más sencillo que pude, para poder comprenderlo un poco mejor.
Ensamblador.
Para obtener el código en ensamblador utilicé gcc, el cual utiliza as como ensamblador y por lo tanto utiliza la sintaxis AT&T, también se puede comprobar porque al comienzo de los registros va un %, lo cual es característico de AT&T.
Utilicé la siguiente instrucción para obtener el código en ensamblador:
gcc -S Pascal.c
Y esto fue lo que me arrojó:
Como podrán ver de un pequeño programa en c me arrojó 235 líneas de código (O.o). En las líneas pueden observar una pequeña explicación de lo que hace cada una.
Optimización del código
Para optimizar el código quité las líneas del comienzo que vienen siendo el nombre del programa (que la agrega gcc por default) y las de alineación de la pila; también eliminé las líneas que relacionadas con la arquitectura de 64 bits; así como también las líneas de función que no afectaba el funcionamiento del programa.
Aquí el código optimizado y como podrán observar el código pasó de 235 líneas a 120 O.o:
Para comprobar que el código sigue funcionando igual que en C, lo que hice fue lo siguiente:
gcc Pascal.s -o Pascal.out
./Pascal.out
Y aquí el programa corriendo
Fuentes.
learnassembler
pdf
Van 10 y 10.
ReplyDelete