Arquitectura de Computadores I

Slides:



Advertisements
Presentaciones similares
El modelo de Von Neumann
Advertisements

DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
ESTRUCTURA DE LOS LENGUAJES DE PROGRAMACION
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Arquitectura de Computadores I
Prototipo de compilador didáctico del lenguaje LC99
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
Circuitos Digitales II Alineamiento en Memoria y Ejecución de un programa Semana No.8 Semestre Prof. Gustavo Patiño Prof. Eugenio.
Direcciones, Arreglos y Argumentos de Funciones
Assembly y el Simulador SPIM
Punteros Universidad Nacional Mayor de San Marcos
66.20 Organización de Computadoras
66.20 Organización de Computadoras
Procesadores de Lenguajes I
CLASE 12.
Circuitos Digitales II
Circuitos Digitales II Elementos sobre la Arquitectura del Conjunto de Instrucciones Semana No.2 Semestre Prof. Gustavo Patiño
Arquitectura de Computadores
ARQUITECTURA INTEL FORMATOS DE INSTRUCCIÓN
Andrés Núñez Herrero Enrique España Blanco Rodrigo Cembrero Carazo
Diego Esteban Moreno Germán Aguado Llorente Félix Huete García.
Circuitos Digitales II
Estructuras de control
VECTORES.
Arquitectura de Conjunto de Instrucciones (ISA)
Composición Interna de un Procesador
Funciones en lenguaje C
Compiladores II ( /04/ :03) Tema 2. Generación de Código para Estructuras Complejas Lecciones 3 y 4.
CLASE 11.
ISA (Instruction Set Architecture)
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
Lenguaje C.
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
MIPS Intermedio.
Semana 5 Subprogramas..
© Prof. José Mª Foces Morán PCSpim: SPIM sobre Windows Ventana principal de PCSpim Consola: permite interactuar con el programa que está siendo.
Arquitecturas de Computadoras Curso Propedéutico
Instrucciones: FORMATO DE INSTRUCCIONES
Índice. Revisando conceptos acerca de la memoria.
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Secciones y Segmentos STARTUP
SEMANA 9_3.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
ICC243 Sistemas Operativos P03: Introducción: Conceptos Prof. Jonathan Makuc.
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Datapath para las instrucciones de carga y almacenamiento (load/store)
introducción al Lenguaje Ensamblador

Capítulo 3 Instrucciones y direccionamiento Félix García Carballeira Jesús Carretero Pérez José Daniel Sánchez García David Expósito Singh © Ediciones.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.
LENGUAJE “C” Programación.
introducción al Lenguaje Ensamblador
Modos de direccionamiento
Maquinas Digitales UNIDADES DE CONTROL.
Introducción a los TADs
CONJUNTO DE INSTRUCCIONES Maquinas Digitales
ARQUITECTURA DE COMPUTADORES
MEMORIA DINÁMICA.
MIPS Intermedio.
Arquitectura de Computadores
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
El microprocesador y su arquitectura
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.
Arquitectura 2013 Explicación 5 Parte II.
Transcripción de la presentación:

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

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.

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; }

Instrucciones para la toma de decisiones. Nombre Formato Campos beq I op rs rt Address bne slt R rd shamt funct j J jr

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.

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; }

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)); }

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.

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

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.

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.

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.