Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Arquitectura de Computadores I
Ejemplo: El conjunto de instrucciones en el MIPS
2
Instrucciones para la toma de decisiones
Ejemplo: Uso de una “tabla de saltos” para la implementación de estructuras case. Obtenga las instrucciones en código ensamblador para MIPS del siguiente segmento de código C. Para ello asuma que es posible el uso de constantes en las instrucciones de control y en las aritméticas. Asuma además que en la posición de memoria apuntada por $T4 se encuentra un arreglo con cada una de las direcciones de salto apropiadas para cada una de las opciones de la sentencia case.
3
Instrucciones para la toma de decisiones.
switch(k) { case 0: f = i + j; break; case 1: f = g + h; break; case 2: f = g - h; break; case 3: f = i - j; break; }
4
Instrucciones para la toma de decisiones.
Nombre Formato Campos beq I op rs rt Address bne slt R rd shamt funct j J jr
5
Manejo de llamadas a subrutinas.
Los seis pasos básicos necesarios para hacer una llamada a subrutina exitosa son los siguientes: Poner los parámetros de entrada en un lugar en donde la subrutina pueda hallarlos. Gestionar los recursos necesarios para la subrutina. Transferir el control a la subrutina. Desarrollar la tarea deseada. Poner el resultado en algún lugar donde el programa que invoca la subrutina lo pueda hallar. Transferir el control al programa invocador.
6
Manejo de llamadas a subrutinas.
$a0 $a3: Argumentos de entrada a procedimientos. $v0 $v1: Argumentos de salida. $ra: Dirección de retorno de la subrutina. $sp: Puntero de pila*. Ejemplo: int ejemplo(int g, int h, int i, int j) { int f; f = (g + h) – (i + j); return f; }
7
Manejo de llamadas a subrutinas – Procedimientos anidados.
Ejemplo: Asumiendo que usted puede usar constantes en las instrucciones aritméticas, encuentre una representación MIPS para el código en lenguaje mostrado a continuación. int fact(int n) { if (n < 1) return 1; else return (n * fact(n-1)); }
8
Manejo de llamadas a subrutinas – Asignación de recursos.
El espacio de pila usado por una subrutina particular es llamado marco de procedimiento (proceduer frame). Algunas implementaciones software en MIPS usan un registro ($fp) para apuntar al principio del marco de un procedimiento particular. El marco de procedimiento sirve entre otras cosas para almacenar argumentos de entrada o salida adicionales del procedimiento, y para almacenar las variables que serán afectadas por el mismo y cuyo valor debe quedar inalterado una vez el procedimiento retorne.
9
Manejo de llamadas a subrutinas – Convenciones sobre los registros.
Nombre Número del registro Uso Debe preservarse ? $zero Valor 0 n. a. $v0$v1 2 3 Arg. de salida en subrutina No $a0$a3 4 7 Arg. de entrada Si $t0$t7 8 15 Temporales $s0$s7 16 23 Variables $t8$t9 24 25 Más temporales $gp 28 Puntero global $sp 29 Puntero de pila $fp 30 Inicio del marco $ra 31 Dirección de retorno
10
Modos de direccionamiento.
Las operaciones matemáticas y las comparaciones con constantes son muy usadas en casi todos los lenguajes de programación. Las instrucciones addi y slti se crearon bajo este principio. En estas instrucciones las constantes son almacenadas en el formato de instrucción y ocupan campos de 16 bits. También existe la instrucción lui que se usa para cargar la parte alta de un registro con una constante de 16 bits.
11
Modos de direccionamiento.
Para los saltos se usan dos tipos de dirección. El salto lejano, en donde el campo dirección tiene un tamaño de 26 bits. Básicamente se puede lograr un salto de este tipo por medio de la instrucción j. En el salto cercano, el campo de dirección posee solo 16 bits y se usa como un desplazamiento realizado sobre el valor del contador de programa. Este campo posee una notación de complemento a dos.
12
Modos de direccionamiento.
En resumen MIPS maneja en total 5 modos de direccionamiento para el manejo de los operandos en sus instrucciones. Direccionamiento por registro. Direccionamiento base o de desplazamiento. Direccionamiento inmediato Direccionamiento relativo al PC. Direccionamiento Pseudo – directo.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.