Usted está aquí: Inicio Ver Cursos Archivados Arquitectura de Ordenadores pruebas-de-evaluacion-1 Problema de examen

Problema de examen

Acciones de Documento
  • Vista de contenidos
  • Marcadores (bookmarks)
  • Exportación de LTI
Autor: Abelardo Pardo

Se precisa escribir un programa en lenguaje ensamblador de la arquitectura IA-32 para procesar los datos obtenidos en unas elecciones realizadas en un conjunto de poblaciones y en las que se han presentado cuatro posibles opciones. Los votos que cada opción ha recibido en cada población se almacenan en una tabla cuya estructura se muestra en la siguiente figura:

Cada entrada en la tabla contiene un primer campo que es la dirección de una cadena de caracteres con el nombre de una población. A continuación se almacenan cuatro números enteros de 32 bits mayores o iguales que cero con el número de votos que cada opción ha obtenido en esta población.

Se pide implementar las siguientes subrutinas en ensamblador de la arquitectura IA-32.

  1. Subrutina parcial. Recibe como parámetros la dirección de comienzo de un elemento de la tabla con los resultados de una población, un número de 32 bits con valor entre cero y tres, y espacio para el resultado; depositados en este mismo orden en la pila tal y como se ilustra en la siguiente figura:


    La subrutina devuelve a través de la pila, el número de votos obtenidos en la población cuya dirección es el primer parámetro, la opción con el índice dado como segundo parámetro. El índice está entre cero y tres, y el valor cero significa la opción 1.

  2. Subrutina total. Recibe como parámetros la dirección de comienzo de la tabla de resultados, un entero de 32 bits con el número de poblaciones que contiene y un entero de 32 bits con valor entre cero y tres, depositados en este mismo orden en la pila tal y como se ilustra en la siguiente figura:

     

     

    La subrutina devuelve a través del registro %eax la suma de los votos obtenidos por la opción cuyo índice se pasa como tercer parámetro en todas las poblaciones. Para obtener los votos de esta opción en una población se debe invocar la subrutina del apartado anterior.

Reutilizar Curso
Descargar este curso