Está en la página 1de 2

UNIVERSIDAD AUTNOMA GABRIEL REN MORENO FACULTAD CIENCIAS EXACTAS Y TECNOLOGA.

CARRERA DE INGENIERA INFORMTICA INF221 LENGUAJE ENSAMBLADOR GRUPO SA SEM 1/2011 PRCTICA No. 7

EJERCICIOS DE PROGRAMACIN EN LENGUAJE ENSAMBLADOR PARA MICROPROCESADOR INTEL X86-32 USO DEL NASM, GCC Y OLLYDBG

Realizar el siguiente programa de 32 bits en lenguaje ensamblador para el microprocesador Intel Pentium: Programa.Escribir y probar el correcto funcionamiento de un programa en lenguaje ensamblador para el microprocesador Intel x86-32, el cual llamar una subrutina (procedimiento) la misma que deber calcular el rea de un tringulo. A tal fin el programa principal solicitar al usuario mediante correspondientes mensajes en pantalla introducir por teclado la base y posteriormente solicitar al mismo usuario introducir siempre por teclado la altura del tringulo cuya rea se quiere calcular. Una vez realizado el clculo del rea del triangulo el programa mostrar por pantalla un mensaje con el rea calculada. A tal fin el programa principal una vez solicitado como se dijo la entrada de datos al usuario por teclado, deber llamar a una subrutina (procedimiento) llamada rea. Dicha subrutina (procedimiento) deber calcular el rea de un tringulo, por lo que recibir en el stack (pila) dos parmetros: el valor de la base del tringulo cuya rea se quiere calcular (paso por valor) y a continuacin la altura de dicho tringulo (paso por valor) en el stack (pila). La subrutina deber dejar el resultado del rea calculada en el registro EAX. Posteriormente el programa principal almacenar el resultado del rea del triangulo en una variable simblica de memoria llamada rea y a continuacin el programa desplegar por pantalla el resultado de dicha rea calculada. El diseo mnimo de la pantalla en la cual se solicitar al usuario que ingrese los datos de entrada del triangulo (base y altura) y mostrar el resultado del rea calculada, deber ser la siguiente:

CALCULO AREA DE UN TRIANGULO

Base del triangulo: Altura del triangulo: El rea del triangulo es:

xxxxxxxx xxxxxxxx xxxxxxxx

Una vez escrito c/u de los programa con un editor (se sugiere usar el editor Notepad+ +), ensamblar los mismos con el ensamblador NASM (NETWIDE ASSEMBLER) con las siguientes opciones (utilizadas en el laboratorio): nasm -f win32 -o ejemplo.o ejemplo.asm l ejemplo.lst A fin de linkear el programa objeto creado con anterioridad utilizar el compilador GCC (compilador GNU para C) con las siguientes opciones: gcc -o ejemplo.exe ejemplo.o Utilizar el OllyDbg para comprobar la ejecucin paso a paso del programa anterior y verificar su correcto funcionamiento. Se debe entregar el prctico segn los grupos definidos y siguiendo las mismas reglas de presentacin de los prcticos anteriores, enviando cada grupo el respectivo programa fuente a travs del Control de Materias y no olvidando de entregar la respectiva carpeta con el listado (.asm) y (.lst) del programa. Slo un envo del programa por grupo !!!!!!. No olvidar colocar al inicio del programa el nmero de registro y el nombre completo como comentario de todos los integrantes del grupo que participaron adems del nmero del grupo.

La evaluacin del prctico tendr un valor correspondiente al 20% de la Nota Final. Para cualquier consulta o dudas sobre el presente prctico o temas en general de la materia, favor dirigirse con mi persona en el edificio del CPD situado en el Campus Universitario en horario de oficina: maanas: 08:00 12:00 y tardes: 15:00 18:30. Fecha lmite de presentacin de la prctica: da mircoles 8 junio 2011 hasta las 07:30 Horas. No se aceptarn practicas pasada dicha hora!!. Corrado Vallet Santa Cruz 31 mayo 2011