lunes, 6 de febrero de 2012

Tarea intro: Lenguaje Ensamblador

Para realizar, el reporte introductorio de la materia de cómputo integrado, sobre lenguaje ensamblador, realicé una serie de pruebas mediante programas utilizando el lenguaje C y generé código ensamblador mediante el compilador, que como lo hemos visto en unidades anteriores, es un lenguaje de programación de bajo nivel que representa simbólicamente códigos máquina ocupándose del trabajo útil.

Para verificar esto, hice diferentes pruebas y ver que pasaba con el código que el compilador generaba en ensamblador. 

Para empezar realicé un código solamente un printf y con un return, para analizarlo.

Para generar este tipo de código se utiliza el siguiente comando: 
    gcc -S ejemplo.c      
Lo cual genera un ejemplo.s.
Las líneas que tienen inicio con puntos, como por ejemplo ".file", ".text" ".glob" son pseudo-operaciones los cuales llevan el nombre de directivas de ensamblador, son comandos que indican a el ensamblador cómo va a armar el archivo. 

Las líneas que comienzan con un texto, luego de dos puntos como "main:", son etiquetas

 Las demás son instrucciones ensamblador. En este código podemos diferenciar en las líneas 9 y 10 el prólogo de la función y en la línea 15 el epílogo de la función, los cuales expliqué anteriormente. 

 La línea 16 alinea la pila hasta un límite de 16 bytes, al reducir a cero la parte inferior a 4 bits de %esp, la cual luego de experimentar, me doy cuenta que no es necesaria. 

 La línea 12 resta 16 bytes desde el apuntador de la pila, lo que da como resultado 16 bytes de espacio para main, la cual luego de experimentar, me doy cuenta que reserva memoria, la cual no sabemos cuanto es. 

Para este reporte, decidí analizar un programa en C que te imprime las tablas de multiplicar de 1 al 10.
Lo cual genera:
El cual he optimizado:

Para una mejor compresión de los códigos, adjunto las diapositivas que he puesto en clase, junto con su explicación.
Tarea-ensamblador



Referencias. 

No hay comentarios:

Publicar un comentario