Sei sulla pagina 1di 3

Universidad Central de Venezuela

Facultad de Ciencias
Escuela de Computación Organización y Estructura del Computador 1
Licenciatura en Computación abril de 2017

Taller 5: Convención de llamada a funciones en x86-64

Competencias a desarrollar

Saber conocer Las competencias saber conocer representan conocimientos teóricos.

Describe el concepto de convención de llamada a funciones.

Identica como se realiza el paso de parámetros a funciones en la arquitectura x86-64.

Identica como se obtiene el valor de retorno de una función en la arquitectura x86-64.

Saber hacer Las competencias saber hacer representan conocimientos prácticos.

Escribe programas en ensamblador para arquitectura x86-64 que llaman a funciones de la


biblioteca estándar de C.

Indicaciones

Para la realización de este taller deberá entregar a su preparador un informe en formato .txt u .odt
(LibreOce) que contenga sus respuestas a las preguntas y actividades planteadas en las siguientes
secciones. Para lograr esto, por favor siga las siguientes recomendaciones:

Comienze leyendo detenidamente las preguntas enunciadas en la Sección de Pre-taller. Conteste


cada una de las preguntas antes de asistir al taller.

Luego realice una por una y en orden las actividades planteadas en la Sección de Taller. Por cada
actividad deberá colocar en su informe capturas de pantallas de los resultados obtenidos de ejecutar
las acciones indicadas aparte de los resultados que se pidan explícitamente para cada actividad, si
los hay.

Finalmente realice las actividades y conteste las preguntas indicadas en la Sección de Post-taller.
Coloque todas sus respuestas en el informe.

GDOEC1 2-2017
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación Organización y Estructura del Computador 1
Licenciatura en Computación abril de 2017

1. Pre-taller

Investigue las siguientes preguntas antes de asistir al taller:

1. Dena el concepto de convención de llamada a funciones.

2. Discuta con su preparador como es la conveción de llamada a funciones la arquitectura IA32.

1.1. Bibliografía recomendada

Randal E. Bryant, David R. O'Hallaron. "Computer Systems: A Programmer's Perspective 3rd


Edition ", Addison-Wesley Publishing Company, 2015.

David A. Patterson y John L. Hennessy. "Computer Organization and Design, 4th Edition: The
Hardware/Software Interface ", Morgan Kaufmann, 2011.

AMD64 Architecture Programmer's Manual Volume 1: Application Programming

Introduction to x64 Assembly

GDOEC1 2-2017
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación Organización y Estructura del Computador 1
Licenciatura en Computación abril de 2017

2. Taller

Cree un directorio para realizar las actividades del taller. Copie dentro de ese directorio los archivos
correspondientes al taller.
Abra el archivo printf.s y examine su contenido. Comente con su preparador como se deben
preparar los parámetros para pasarlos a la función printf e indiquelo en su reporte. Tome nota de como
se realiza la llamada a printf (el símbolo @plt colocado después del nombre de la función se reere a
un procedimiento de relocalización. Solo es necesario colocarlo en código PIE. Sus implicaciones serán
examinadas en futuros talleres). Compile el programa de la siguiente manera:

gcc -O0 -o myprintf printf.s

Abra el archivo cat.s y examine su contenido. Indique en su reporte que realiza este programa.
Compile el archivo de la siguiente manera:

gcc -O0 -o mycat cat.s

Ejecute el programa y examine su comportamiento (pruebe escribiendo texto y presionando la tecla


enter varias veces). Para terminar el programa presione las teclas CTRL+D. Esta combinación de teclas

envía un caracter de n de archivo al programa activo en la terminal. Responda lo siguiente en su


informe: ¾como se detecta si el caracter leido es un n de archivo en el programa cat.s? Comente con
su preparador sobre las etiquetas stdin y stdout usadas en el código.
Abra el archivo itself.s y examine su contenido. Compile el programa de la siguiente manera y
ejecútelo:

gcc -O0 -o itself itself.s

Indique en su reporte como se maneja el apuntador a FILE que retorna la función fopen y es necesario
para las funciones de manipulación de archivos en C.
Abra el archivo cliargs.s y examine su contenido. Compile y ejecute este programa, luego comente
sobre su funcionamiento con su preparador.

3. Post-taller

Modique el archivo print_file.s como base para que este cuente la cantidad de lineas que tiene
el primer archivo especicado como argumento de linea de comandos. La cantidad de lineas debe ser
impresa en pantalla con la función printf. Puede asumir lo siguiente:

Su programa solo recibirá archivos de texto por la linea de comandos.

Las lineas siempre termina con el caracter \n (ASCII valor 10 en decimal, 0x0A en hexadecimal).

GDOEC1 2-2017

Potrebbero piacerti anche