La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de Computadores I

Presentaciones similares


Presentación del tema: "Arquitectura de Computadores I"— Transcripción de la presentación:

1 Arquitectura de Computadores I
Ejemplo: El conjunto de instrucciones en el MIPS

2 Ejemplo: El conjunto de instrucciones en el MIPS
Introducción. Instrucciones aritméticas. Operandos: Registros y localidades de memoria. Lenguaje de máquina: Representación de las instrucciones en el computador. Instrucciones de decisión.

3 Introducción

4 Introducción Instrucciones – conjunto de instrucciones.
Los diferentes conjuntos de instrucciones se parecen entre si. La simplicidad en el diseño es uno de los objetivos de un desarrollador cuando escoge el conjunto de instrucciones. Estudio del conjunto de instrucciones del MIPS. Usado por NEC, Nintendo, Silicon Graphics & Sony, entre otros.

5 Operaciones aritméticas
“Deben existir instrucciones para realizar operaciones aritméticas fundamentales”. Principio de diseño 1: La simplicidad favorece la regularidad.

6 Operaciones aritméticas
Ejemplo: A continuación se muestran 2 segmentos de código escritos en C para un programa particular. Asumiendo que las variables a, b, c, ... i, j existen dentro de sus respectivos entornos, ¿ cual sería el código MIPS que el compilador generaría para cada segmento ? // Segmento 1: a = b + c; d = a – e; // Segmento 2: f = ( g + h ) – ( i + j );

7 Operandos para las instrucciones.
Las variables en un lenguaje de alto nivel tienen su contraparte en el mundo del lenguaje de máquina. Se trata de los registros. Un registro es una localidad especial ubicada en la unidad de procesamiento. El tamaño de los registros en MIPS es de 32 bits. Así mismo, MIPS posee un total de 32 registros. El compilador se encarga de hacer desbordamiento de variables para compensar la cantidad de registros. “ Principio de diseño 2: Generalmente los diseños pequeños son más veloces. ”

8 Operandos para las instrucciones.
La convención usada en MIPS es nombrar los registros con dos caracteres, precedidos por el carácter $. Ej: $s0, $s1, $t0, $t1. * Las operaciones aritméticas ocurren solo entre registros de MIPS, por lo tanto deben existir instrucciones para transferir datos entre los registros y la memoria del sistema. Las dos instrucciones que usa MIPS para tales transferencias es lw y sw. ** Por el tamaño de las palabrasen MIPS, se deben considerar dos conceptos: La restricción de alineamiento y el formato Big Endian para el almacenamiento de los bytes individuales en memoria.

9 Operandos para las instrucciones.
Ejemplo: Compile el siguiente par de segmentos de código y genere el código equivalente para MIPS. Use la notación $s0, $s1, ... para representar las variables en el programa y $t0, $t para representar los elementos de tipo temporal. Asuma que la dirección base del arreglo A está almacenada en el registro $s3. // Segmento 1: A[12] = h + A[8]; // Segmento 2: g = h + A[i];

10 Representación binaria de las instrucciones.
Dirección Instrucción Formato op rs rt rd shamt function add R reg 32 sub 34 lw I 35 Address sw 43 Reg

11 Representación binaria de las instrucciones
Ejemplo: Compile y ensamble la siguiente línea de código escrita en C para MIPS. Asuma que el registro $s0 almacena la dirección base del arreglo A, mientras que la variable h corresponde al registro $s2. // Código en C: A[300] += h;

12 Instrucciones para la toma de decisiones.
Existen tres instrucciones en MIPS para controlar las estructuras de decisión y las repetitivas: beq, bne y slt. El formato para bne y beq es el siguiente: bne reg,reg,etiqueta beq reg,reg,etiqueta El formato para slt es: slt reg,reg,reg

13 Instrucciones para la toma de decisiones.
Ejemplo: Usando las instrucciones de decisión vistas, compile los siguientes bloques de código escrito en C. Asuma que el registro base del arreglo A es $s0. Las variables f, g, h, i y j corresponden a los registros $s1, $s2, $s3, $s4 y $s5, respectivamente.

14 Instrucciones para la toma de decisiones.
// Segmento 1: if (i==j) f = g + h; else f = g – h; // Segmento 2: Loop: f = f + g; g = g + 1; if(g!=h)go to Loop; // Segmengto 3: while (A[j] == k)


Descargar ppt "Arquitectura de Computadores I"

Presentaciones similares


Anuncios Google