3. Instrucciones: lenguaje de la máquina
|
|
- Miguel Olivera San Segundo
- hace 5 años
- Vistas:
Transcripción
1 3. Instrucciones: lenguaje de la máquina Fundamentos de Computadores Ingeniería de Telecomunicación Raúl Durán Díaz Departamento de Automática Escuela Politécnica Superior Curso académico Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 1 / 50 Contenidos Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 2 / 50
2 Introducción Para manejar la máquina, hablamos su lenguaje. Las palabras son instrucciones. El vocabulario es el repertorio de instrucciones. Las instrucciones deben ser lo más sencillas que sea posible, pero... deben permitir cualquier operación, es decir, el repertorio debe ser completo. En la práctica, los repertorios de instrucciones de todas las máquinas se parecen. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 3 / 50 Concepto de programa almacenado La idea clave de von Neumann es representar las instrucciones mediante códigos numéricos, susceptibles de ser almacenados en memoria como cualquier otro tipo de dato. Nosotros no manejamos directamente los códigos numéricos, sino un mnemónico asociado a cada instrucción. Al conjunto de todos los mnemónicos lo llamamos lenguaje máquina. Existe un formato de instrucción, que nos permitirá traducir los códigos numéricos a lenguaje máquina y viceversa. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 4 / 50
3 Arquitectura MIPS Tipo RISC (reduced intruction set computer): esto significa mínimo número de instrucciones, todas muy simples. Dotado con 32 registros de propósito general y el contador de programa, todos ellos de 32 bits. Observación Limitar el número de registros es bueno para poder conseguir una elevada velocidad de operación en el hardware. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 5 / 50 Arquitectura MIPS Esta arquitectura es del tipo carga-almacenamiento: Sólo permite operaciones con valores en los registros. Interactúa con la memoria por medio de únicamente un par de instrucciones de carga (lectura de memoria a registro) y almacenamiento (escritura de registro a memoria). La memoria es como un gran vector, direccionable byte a byte. Lo normal es acceder en direcciones múltiplos del tamaño accedido. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 6 / 50
4 Excursus: acceso a memoria big endian El byte 0 está en la posición más alta. Usado en IBM 370, Sun SPARC, HP-PARISC, etc Direcciones altas Direcciones bajas Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 7 / 50 Excursus: acceso a memoria little endian El byte 0 está en la posición más baja. Usado en x86, Digital VAX, Digital Alpha, Digital Unix, etc Direcciones altas Direcciones bajas Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 8 / 50
5 Arquitectura MIPS: registros Los registros se nombran $0, $1,...,$31. Son casi de propósito general, excepto: el registro 1, llamado $at, reservado al ensamblador; los registros 26 27, llamados $k0 y $k1, reservados al kernel; los registros 28 31, reservados a ciertos punteros. El resto tiene un uso convenido, pero arbitrario. Al final, todos tienen un sinónimo. Veamos el siguiente cuadro. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 9 / 50 Nombres de los registros en MIPS Nombre Número Uso $zero 0 constante 0 $v0 $v1 2 3 resultados, evaluación de expresiones $a0 $a3 4 7 argumentos $t0 $t temporales $s0 $s preservados en llamadas $t8 $t temporales $gp 28 puntero global $sp 29 puntero de pila $fp 30 puntero de cuadro $ra 31 dirección de retorno Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 10 / 50
6 Instrucciones para operaciones aritméticas Cómo ensamblamos un código como éste? Ejemplo en C int i, j, f, g, h; f = (g + h) - (i + j); Podemos asignar las variables a registros y usar la instrucciones de suma y resta enteras: Lo mismo, ensamblado add $t0, $s3, $s4 add $t1, $s0, $s1 sub $s2, $t0, $t1 en donde las instrucciones de suma y resta significan: Regs[x] = Regs[y] ± Regs[z] Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 11 / 50 Instrucciones de acceso a memoria Ejemplo en C int g, h, A[100]; g = h + A[8]; Lo mismo, ensamblado lw $t0, 32($s2) add $s0, $t0, $s1 Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 12 / 50
7 Instrucciones de acceso a memoria Ejemplo en C int h, A[100]; A[4] = h + A[8]; A[4] += 5; Lo mismo, ensamblado lw $t0, 32($s1) add $t0, $t0, $s0 sw $t0, 16($s1) ; se puede eliminar addi $t0, $t0, 5 sw $t0, 16($s1) Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 13 / 50 Instrucciones de acceso a memoria Ejemplo en C int i, g, h, A[100]; g = h + A[i]; Lo mismo, ensamblado add $t0, $s0, $s0 add $t0, $t0, $t0 add $t0, $t0, $s3 lw $t1, 0($t0) add $s1, $s2, $t1 Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 14 / 50
8 Observaciones respecto a lo visto En un programa hay más variables que registros... pónganse en registros las variables más usadas. El direccionamiento tipo base + desplazamiento es útil para direccionar vectores y campos de estructuras. Los operandos de todas las instrucciones están siempre en registros. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 15 / 50 Instrucciones de desplazamiento lógico y aritmético Operación en C en ensamblador Shift left << sll $s1,$s2,d Shift right >> srl $s1,$s2,d AND bit a bit & and $s1,$s2,$s3 OR bit a bit or $s1,$s2,$s3 Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 16 / 50
9 Resumen de instrucciones básicas Instrucción Función add $r3, $r2, $r1 $r3 $r1 + $r2 sub $r3, $r2, $r1 $r3 $r1 - $r2 addi $r2, $r1, n $r2 $r1 + n lw $r2, n($r1) $r2 M[$r1 + n] sw $r1, n($r2) M[$r2 + n] $r1 sll $r1, $r2, d $r1 $r2 << d srl $r1, $r2, d $r1 $r2 >> d and $r1, $r2, $r3 $r1 $r2 & $r3 or $r1, $r2, $r3 $r1 $r2 $r3 Atención: El número n puede ser positivo o negativo. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 17 / 50 Tomando decisiones La gran potencia de la programación es la toma dinámica de decisiones: para ello introducimos los saltos condicionales. La idea es que la ejecución del código salte a una zona u otra en función del resultado de la comparación de dos registros. Las instrucciones básicas son beq $r1, $r2, Etiq1 ; Ir a Etiq1 si $r1 = $r2 bne $r1, $r2, Etiq2 ; Ir a Etiq2 si $r1 $r2 También existe el salto incondicional j Etiqueta ; salta a Etiqueta incondicionalmente. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 18 / 50
10 Ensamblamos una sentencia if-then-else Ejemplo en C int i, j, f, g, h; if (i == j) f = g + h; else f = g - h; Lo mismo, ensamblado bne $s0, $s1, Else add $s2, $s3, $s4 j Fin Else: sub $s2, $s3, $s4 Fin: Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 19 / 50 Ensamblamos un bucle Ejemplo en C int i, j, k, A[100]; while (A[i] == k) i = i + j; Lo mismo, ensamblado Bucle: add $t0, $s0, $s0 add $t0, $t0, $t0 add $t0, $t0, $s3 lw $t1, 0($t0) bne $t1, $s2, Fin add $s0, $s0, $s1 j Bucle Fin: Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 20 / 50
11 Más instrucciones de control de flujo Para comparar un menor que tenemos: slt $r3, $r1, $r2 $r3 recibe un 1 si $r1 < $r2 y un 0 en caso contrario. Tenemos también slti $r2, $r1, n $r2 recibe un 1 si $r1 < n y un 0 en caso contrario. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 21 / 50 Y otra instrucción de salto Tenemos una instrucción que nos permite saltar a una dirección variable, que esté contenida en un registro: jr $r1 La instrucción siguiente a ésta será la que resida en la dirección que está contenida en el registro $r1. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 22 / 50
12 Resumen de instrucciones de control de flujo Instrucción Función beq $r1, $r2, etiq ($r1 == $r2)? $PC $PC+etiq : bne $r1, $r2, etiq ($r1!= $r2)? $PC $PC+etiq : slt $r1, $r2, $r3 ($r2 < $r3)? $r1 1 : $r1 0 slti $r1, $r2, n ($r2 < n)? $r1 1 : $r1 0 j etiq $PC etiq jr $r1 $PC $r1 jal etiq $ra $PC+4; $PC etiq Atención: Como antes, el número n puede ser positivo o negativo. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 23 / 50 Las instrucciones se representan binariamente, usando bytes. En MIPS, todas las instrucciones tienen 4 bytes. Los 32 bits se reparten en campos, algunos de los cuales son fijos. De esta forma, la interpretación de la instrucción es más sencilla y uniforme. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 24 / 50
13 Para las instrucciones tipo R (varios registros involucrados): op code RS RT RD SHAMT FUNC 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Significado de los campos op code: código de operación básica RS: registro fuente 1 RT: registro fuente 2 RD: registro destino SHAMT: shift amount FUNC: código de función concreta Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 25 / 50 Para las instrucciones tipo I (valores inmediatos involucrados): op code RS RT dirección 6 bits 5 bits 5 bits 16 bits Significado de los campos op code: código de operación básica RS: registro fuente RT: registro destino dirección: número de 16 bits (±32767) Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 26 / 50
14 Para las instrucciones tipo J (transferencia de control): op code dirección de salto 6 bits 26 bits op code: dirección de salto: Significado de los campos código de operación básica dirección de la siguiente instrucción a ejecutar Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 27 / 50 básicas Tipo Opcode RS RT RD SHAMT FUNC dir add R 0 reg reg reg 0 32 n/a sub R 0 reg reg reg 0 34 n/a addi I 8 reg reg n/a n/a n/a inm lw I 35 reg reg n/a n/a n/a dir sw I 43 reg reg n/a n/a n/a dir j J 2 n/a n/a n/a n/a n/a n/a Traducir el lenguaje ensamblador a código máquina es el papel del as (o programa ensamblador). Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 28 / 50
15 de control Tipo Opcode RS RT RD SHAMT FUNC dir beq I 4 reg reg n/a n/a n/a dir bne I 5 reg reg n/a n/a n/a dir slt R 0 reg reg reg 0 42 n/a jr R 0 reg n/a jal J 3 n/a n/a n/a n/a n/a n/a Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 29 / 50 lógicas Tipo Opcode RS RT RD SHAMT FUNC dir sll R 0 0 reg reg d 0 n/a srl R 0 0 reg reg d 2 n/a sra R 0 0 reg reg d 3 n/a and R 0 reg reg reg 0 36 n/a or R 0 reg reg reg 0 37 n/a Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 30 / 50
16 Resumen de modos de direccionamiento 1 Registro: los operandos están en registros. 2 Inmediato: El operando es una constante contenida en la propia instrucción. 3 Indexado, (base más desplazamiento): Un operando está en memoria. La dirección es la suma del contenido de un registro y de un valor inmediato. 4 Relativo a $PC: La dirección del operando es la suma del registro $PC más una constante contenida en la instrucción. 5 Directo: La dirección de salto está (casi) contenida en la instrucción. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 31 / 50 o procedimientos Las subrutinas o procedimientos estructuran el código: se les pasan valores (argumentos) y devuelven resultados. Permiten el reuso del software. Aíslan unas piezas del código de otras, facilitando el mantenimiento. Es un sirviente al que se le dan unos datos (los argumentos ) y nos devuelve un resultado ( valor de retorno ). Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 32 / 50
17 o procedimientos Para ejecutar correctamente una subrutina, los pasos son: Actor Principal: Principal: Subrutina: Subrutina: Subrutina: Subrutina: Acción coloca argumentos en un lugar accesible a la subrutina. transfiere el control. reserva espacio para su ejecución. ejecuta su función. coloca el resultado en un lugar accesible al principal. devuelve el control al punto de partida. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 33 / 50 Más registros... Para el intercambio de datos se utilizan ciertos registros convenidos: Nombre Uso $a0 $a3 para pasar argumentos $v0 $v1 para devolver los resultados $ra para la dirección de retorno Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 34 / 50
18 ... y una nueva instrucción Una instrucción especialmente pensada nos permite saltar al comienzo de la subrutina al tiempo que se guarda la dirección de retorno en el registro $ra. jal Procedimiento El nombre jal significa jump-and-link. El sentido es que conservamos en $ra la dirección a la que se debe retornar. La dirección de la instrucción que se ha de ejecutar se guarda en el registro de instrucción, o $PC. Por tanto la dirección que se ha de guardar en $ra es $PC+4. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 35 / 50 Resumen de llamada a la subrutina Los pasos para la llamada serán: 1 El principal coloca en $a0 $a3 los argumentos necesarios para la ejecución de la subrutina. 2 Ésta realiza los cálculos y devuelve el/los resultado(s) en $v0 $v1. 3 Devuelve el control con un simple jr $ra. Y si no bastan con los registros de que se dispone? Ahora lo vemos. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 36 / 50
19 Un nuevo registro y la pila Es muy probable que una subrutina necesite más registros que los $a0 $a3 y $v0 $v1. Antes de poder usar otros registros, éstos se deben archivar. Para ello, se dedica un trozo de memoria, suficientemente grande, como repositorio temporal. Este repositorio se llama pila (en inglés, stack). Se usa un registro, $sp, para saber en donde comienza el espacio libre. Cada vez que se almacena o se extrae algo, se ajusta. Por razones históricas, crece hacia las direcciones bajas de memoria. Las operaciones de almacenamiento y extracción se llaman push y pop, respectivamente. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 37 / 50 Ensamblando una subrutina Subrutina en C int sub1(int g, int h, int i, int j) { int f; f = (g + h) - (i + j); } return f; Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 38 / 50
20 Ensamblando una subrutina Subrutina en ensamblador sub1: subi $sp, $sp, 12 sw $t0, 8($sp) sw $t1, 4($sp) sw $s0, 0($sp) add $t0, $a0, $a1 add $t1, $a2, $a3 sub $s0, $t0, $t1... Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 39 / 50 Ensamblando una subrutina Subrutina en ensamblador... add $v0, $s0, $zero lw $s0, 0($sp) lw $t1, 4($sp) lw $t0, 8($sp) addi $sp, $sp, 12 jr $ra Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 40 / 50
21 Convenios sobre el uso de registros Convenimos en que los registros $t0 $t9 son temporales y no hace falta guardarlos antes de usarlos. En cambio, los registros $s0 $s7 sí deben ser salvados antes de ser usados. En la subrutina anterior nos ahorramos dos pushes. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 41 / 50 Y si la subrutina llama a otra? Si una subrutina llama a otra, probablemente necesita usar también los registros $a0 $a3, y guardar en $ra la dirección de retorno. Hay un conflicto en el uso de los registros. La solución es guardarlos en la pila antes de modificarlos, restaurando su valor al final. Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 42 / 50
22 Subrutina recursiva Subrutina en C int fact(int n) { if (n == 1) return 1; else return n*fact(n - 1); } Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 43 / 50 Subrutina recursiva Subrutina ensamblada (I) fact: subi $sp, $sp, 8 sw $ra, 4($sp) sw $a0, 0($sp) subi $t0, $a0, 1 bne $t0, $zero, F1 addi $v0, $zero, 1 addi $sp, $sp, 8 jr $ra... Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 44 / 50
23 Subrutina recursiva Subrutina ensamblada (II)... F1: subi $a0, $a0, 1 jal fact lw $a0, 0($sp) lw $ra, 4($sp) addi $sp, $sp, 8 mul $v0, $v0, $a0 jr $ra Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 45 / 50 Estado de los registros en llamadas a subrutinas Por convenio, el comportamiento es así: Preservados $s0 $s7 $sp $ra Memoria encima de $sp No preservados $t0 $t9 $a0 $a3 $v0 $v1 Memoria debajo de $sp Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 46 / 50
24 Ciclo de programación Programa C Código ensamblado Código máquina Ejecutable Programa cargado Compilador Ensamblador Linker Cargador Figura: Procesos y resultados del ciclo de programación Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 47 / 50 Estructura del programa cargado $sp 7fff fffc Pila $gp Datos dinámicos Datos estáticos pc Código (texto) Reservado Figura: Zonas de memoria, una vez cargado el programa Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 48 / 50
25 Estructura de un fichero objeto Cabecera fichero objeto Segmento de código Segmento de datos Información de realojo Tabla de símbolos Información de depuración Figura: Partes de un fichero objeto, con extensión.o Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 49 / 50 Lenguajes de programación de alto nivel COBOL, PL/I FORTRAN PASCAL, C ADA Java, C++, SmallTalk... Raúl Durán Díaz 3. Instrucciones: lenguaje de la máquina 50 / 50
El repertorio de instrucciones
El repertorio de instrucciones Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización
Más detallesArquitectura del MIPS: Introducción
Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización
Más detallesEstructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS
Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization
Más detallesProcesador MIPS - Registros
MIPS Microprocessor without Interlocked Pipeline Stages Surgió a comienzos de los 80 en Stanford. Sintetiza las principales ideas de RISC. Arquitectura eficiente y simple. 1 Procesador MIPS - Registros
Más detallesUnidad 3. Facultad de Ciencias Departamento de Electrónica
Universidad Autónoma de San Luis Potosí Facultad de Ciencias Departamento de Electrónica Unidad 3 Instrucciones: Lenguaje de la Computadora Dra. Ruth M. Aguilar Ponce Primavera Unidad 3 Operaciones del
Más detallesOrganización de Computadoras. Principios de Conjuntos de Intrucciones
Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load
Más detallesEjercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique
Más detallesINTRUCCIONES: LENGUAJE MAQUINA
INTRUCCIONES: LENGUAJE MAQUINA 1.- INTRODUCCION Conceptos importantes Instrucción: Orden al hardware del Computador Repertorio de Instrucciones Lenguaje Máquina (ML) Lenguaje Ensamblador (AL) Lenguaje
Más detallesTema 3 (III) Fundamentos de la programación en ensamblador
Tema 3 (III) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos } Fundamentos básicos de la
Más detallesFundamentos de los Computadores Grado en Ingeniería Informática
Repaso Arquitectura MIPS Fundamentos de los Computadores Grado en Ingeniería Informática Arquitectura MIPS Registros Instrucciones Organización de memoria Formato de las instrucciones Modos de direccionamiento
Más detallesIntroducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones
Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina
Más detallesEjercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa
Más detallesModelo de von Neumann
Conceptos básicos Modelo de von Neumann También conocida como arquitectura de Princeton. Propuesta por John von Neumann en 1945. Partes de una computadora digital: Unidad de procesamiento (CPU unidad central
Más detallesPlataformas de soporte computacional: arquitecturas avanzadas,
Plataformas de soporte computacional: arquitecturas avanzadas, sesión Diego R. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice. Arquitectura
Más detallesArquitectura de Computadoras
4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice
Más detallesArquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA
Arquitecturas RISC Características de las arquitecturas RISC Juego de instrucciones reducido (sólo las esenciales) Acceso a memoria limitado a instrucciones de carga/almacenamiento Muchos registros de
Más detallesProgramación en ensamblador Ejercicios propuestos
Programación en ensamblador Ejercicios propuestos Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique un fragmento de
Más detallesFUNDAMENTOS DE MICROPROCESADORES SOLUCIONES A LOS PROBLEMAS DE LA UNIDAD-3.- EL PROCESADOR I: EL LENGUAJE MAQUINA
3.1. Un programa escrito para MIPS invoca a la subrutina func, a la que transfiere tres argumentos a, b y c. La subrutina tiene dos variables locales m y n. Mostrar la posición del puntero de pila y los
Más detallesESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S.
Nombre: SOLUCIÓN Madrid, 24 de abril de 2008. NOTAS: Duración: 60 minutos. Se puede hacer a lápiz. No se permiten apuntes ni calculadora. No se permite desgrapar las hojas. 1. (2 puntos) Indique cuáles
Más detallesUNIDAD 2: Instrucciones: el lenguaje de las computadoras.
UNIDAD 2: Instrucciones: el lenguaje de las computadoras. 2.1 Introducción Para comandar una computadora se le debe hablar en su lenguaje. Las palabras del lenguaje de una máquina son llamadas instrucciones,
Más detallesArquitectura de Computadores II Clase #3
Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El
Más detallesOrganización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy
Organización del Computador I Verano MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Arquitectura MIPS (R2000) Registros Formato de Instrucción
Más detallesPr. Dr. Xavier Bonnaire
Pr. Dr. Xavier Bonnaire Slide 1 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María Temario Introducción Estructura Básica de un Computador Lenguaje de Máquina Básico Instrucciones para
Más detallesUnidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño
Instituto Universitario Politécnico Santiago Mariño Unidad Nº II Capacidad de la unidad central de procesamiento Organización de instrucción de máquina Cada instrucción requiere la información que necesita
Más detallesConstruyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Más detallesEstructuras de Computadores I Tarea 02 02/99
Estructuras de Computadores I Tarea 02 02/99 1. Dada la secuencia de bits: 0011 0100 0101 0101 0100 0011 0100 0010 Qué representa, asumiendo que es: a. Un número entero en complemento dos. b. Fracción
Más detallesArquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2
Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2 Instrucciones de control de flujo Arquitectura de Computadores
Más detallesRepaso Registros internos Z80 1/37
Repaso Registros internos Z80 1/37 Repaso Formato instrucciones Formato con 4 direcciones Acumulador: A A op oper2 PC: Program Counter dirección de la próxima instrucción Instrucciones de operación Código
Más detallesTema 3 (I) Fundamentos de la programación en ensamblador
Tema 3 (I) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Fundamentos básicos de la
Más detallesISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones
ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones Instruction Set Architecture (ISA) Arquitectura del conjunto de instrucciones software Conjunto de instrucciones hardware Universidad
Más detallesGrupo de Arquitectura y Tecnología de Computadores (ARCOS)
Grupo de Arquitectura y Tecnología de Computadores (ARCOS) http://arcos.inf.uc3m.es/~ec 2 http://arcos.inf.uc3m.es/~ec 4 http://arcos.inf.uc3m.es/~ec 5 http://arcos.inf.uc3m.es/~ec 6 Código fuente en
Más detallesArquitectura del procesador MIPS R2000
Arquitectura del procesador MIPS R2000 Aula Virtual IS09 Sergio Barrachina Mir Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I Índice
Más detallesEl procesador. Diseño del control
El procesador Diseño del control Datapath MIPS simple Universidad de Sonora Arquitectura de Computadoras 2 MIPS simple El datapath anterior cubre instrucciones: Aritméticas-lógicas: add, sub, and, or y
Más detallesEstructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086
Estructura de Computadores: Tema 1 El procesador Introducción Estudiaremos la arquitectura del procesador i8086 (CPU, registros,...), su gestion de la memoria y su conjunto de instrucciones. Programaremos
Más detallesFundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)
8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) Objetivos Plantear y modificar una ruta de datos para un repertorio de instrucciones
Más detallesSección de procesamiento: El camino de datos
Sección de procesamiento: El camino de datos Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución
Más detallesTema 3 (III) Fundamentos de la programación en ensamblador
Tema 3 (III) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenido } Fundamentos básicos de la
Más detallesEl procesador. Datapath para las instrucciones de brinco
El procesador Datapath para las instrucciones de brinco Instrucciones de brinco Dos tipos de instrucciones de brincos: 1. Brinco condicional. beq $t0, $t1, Etiqueta ; if t0 == t1 goto Etiqueta 2. Brinco
Más detallesProgramando sobre MIPS64
Programando sobre MIPS64 Escribir un programa en cualquier lenguaje involucra estructurar el código de forma que éste sea modular, extensible, simplede mantener y reutilizable. En assembly, eso involucra
Más detallesOrganización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017
Organización del Computador 1 CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Estructura de una máquina von Neumann Ciclo de Ejecución 1. 2. 3. 4. 5. 6. UC obtiene la próxima instrucción de
Más detalles5 Lenguaje de Máquina
5 Lenguaje de Máquina Ya visto el detalle de la organización de la CPU y el nivel de microprogramación, en este punto veremos las consideraciones del nivel de lenguaje de máquina. Este conjunto de instrucciones
Más detallesArquitectura del CPU. Organización del Computador 1 Verano 2016
Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales
Más detallesGUIA 24: REPERTORIO DE INSTRUCCIONES
Prof Sandro Costantini GUIA 24: INSTRUCCIONES Las instrucciones maquinas son las acciones elementales que puede ejecutar un computador Una acción compleja deberá codificarse como una secuencia de instrucciones
Más detallesFundamentos y Arquitectura de Computadores (ITTSE UV)
Fundamentos y Arquitectura de Computadores (ITTSE UV) F. Micó REGISTROS DEL MIPS R2000/R3000 Nombre Código del Uso registro $zero 0 Valor constante 0 $v0 - $v1 2 3 Valores de retorno para las llamadas
Más detallesIntroducción al lenguaje ensamblador DLX: instrucciones de enteros.
PRÁCTICA 0.a Introducción al lenguaje ensamblador DLX: instrucciones de enteros. OBJETIVO El objetivo de esta práctica es la familiarización con el lenguaje ensamblador DLX, analizando la ejecución de
Más detallesFundamentos y Arquitectura de Computadores (ITTSE UV)
REGISTROS DEL MIPS32 Nombre Código del Uso común registro $zero 0 El contenido de este registro siempre es nulo $v0 - $v1 2 3 Valores de retorno para las llamadas al sistema $a0 - $a3 4 7 Argumentos para
Más detallesUNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES
Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal: a) 010011 b) 100111 Ejercicio 3 Dada la siguiente expresión
Más detallesOrganización procesador MIPS
Organización procesador MIPS Organización MIPS Memoria CPU Registros FPU Registros Alu Mul Div Hi Lo U. Aritmética Traps Manejo de Memoria Organización MIPS Unidad Aritmética y Lógica (ALU). Unidad Aritmética
Más detallesESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S.
ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S. Examen Final 2º cuatrimestre Nombre: SOLUCIÓN Madrid, 20 de junio de 2008. NOTAS: Duración: 90 minutos. Se puede hacer a lápiz. No se permiten
Más detallesTema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.
Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel. Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: (1)
Más detallesTema 1. Fundamentos del lenguaje ensamblador
Tema 1. Fundamentos del lenguaje ensamblador Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Índice Estructura del
Más detallesBloques del programa de la asignatura
Bloques del programa de la asignatura lases Enfoque Temas 1 1 oncreto Símplez y Símplez+i4 (niveles de máquina convencional y micromáquina) 11 16 General Representación y procesamiento Instrucciones y
Más detallesSistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Más detallesPráctica 3: Programación en ASM Orga 1
Ignacio Eguinoa Organización del Computador I DC - UBA Segundo Cuatrimestre de 2015 Generaciones de lenguajes 1G: Lenguaje de máquina(código binario de operaciones) 2G: Lenguaje Ensamblador(Assembly) (Textual
Más detallesTema 5 (III) Jerarquía de Memoria
Grupo ARCOS Tema 5 (III) Jerarquía de Memoria Estructura de Computadores Grado en Ingeniería Informática Contenidos 1 Tipos de memoria 2 Jerarquía de memoria 3 Memoria principal 4 Memoria caché 5 Memoria
Más detallesUnidad de Entrada-Salida Software de sistemas Parámetros característicos Ejemplo
Estructura de Computadores INTRODUCCIÓN Índice Objetivos Bibliografía recomendada Introducción Esquema básico del computador Von Neumann. Componentes La Memoria Principal La Unidad Central de Proceso (CPU)
Más detallesTema 2. Diseño del repertorio de instrucciones
Enunciados de problemas Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 10 Tema 2: Hoja: 3 / 10 Base teórica Al diseñar un computador, uno
Más detallesEl nivel ISA (II)! Conjunto de Instrucciones
El nivel ISA (II) Conjunto de Instrucciones EC-2721 Arquitectura del Computador I Que es un Conjunto de Instrucciones? Colección completa de instrucciones comprendida por un procesador Lenguaje de máquina
Más detallesContenidos: Definiciones:
Contenidos: Definiciones. Esquema de un ordenador. Codificación de la información. Parámetros básicos de un ordenador. Programas e instrucciones. Proceso de ejecución de una instrucción. Tipos de instrucciones.
Más detallesGeneración de un ejecutable
ASSEMBLER Generación de un ejecutable Programa de alto nivel Programa Compiler Assembler Linker Archivo Ejecutable Programa en lenguaje assembler Archivo Fuente Assembler Archivo Objeto Archivo Fuente
Más detallesRepaso concepto de programa
Repaso concepto de programa ANTES se tenían sistemas cableados Datos Secuencia de funciones aritmético/lógicas Resultados Programación en hardware: cuando cambiamos las tareas, debemos cambiar el hardware
Más detallesEjercicios del tema 4. El procesador
Ejercicios del tema 4. El procesador Estructura del procesador elemental WepSIM Address Bus Data Bus Control Bus C0 Ta Internal Bus RA RB RC LC MAR T9 Memory MRdy BE ADDR DATA R W A31-A0 BE3-BE0 D31-D0
Más detallesArquitectura de Computadoras I Ingeniería de Sistemas Curso 2017
Arquitectura de Computadoras I Ingeniería de Sistemas Curso 217 Práctica de Laboratorio: Microprocesador MIPS Segmentado El objetivo de esta práctica es implementar el microprocesador MIPS (visto en clase
Más detallesCurso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
Más detallesFunciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.
MIPS Funciones 1 Funciones Diseño de funciones. Uso de instrucción jal y retorno de subrutina. Se suelen denominar funciones, procedimientos, subrutinas, subprogramas a las estructuras que emplean los
Más detallesELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo
ELO311 Estructuras de Computadores Digitales Operaciones MIPS para Control de flujo Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer
Más detallesTema 2: Lenguaje máquina. La interfaz entre el hardware y el software
Tema 2: Lenguaje máquina La interfaz entre el hardware y el software 1 Índice Introducción. Formatos de Instrucción. Modos de Direccionamiento. Ortogonalidad y Regularidad. Frecuencia de Utilización de
Más detallesESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES I. Tema X Modos de Direccionamientos
ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES I Tema X Modos de Direccionamientos TEMA 10. Modos de direccionamiento 10.1 Justificación de los modos de direccionamiento 10.2 Descripción de los modos de direccionamiento
Más detallesGuía práctica lenguaje ensamblador
Guía práctica lenguaje ensamblador (c) Francisco Charte Ojeda Introducción Qué es el lenguaje ensamblador? Aplicaciones de la programación en ensamblador El lenguaje ensamblador de los x86 8, 16, 32 y
Más detallesTEMA 5 JUEGO DE INSTRUCCIONES DE UN COMPUTADOR
TEMA 5 JUEGO DE INSTRUCCIONES DE UN COMPUTADOR 1. PROPIEDADES DEL JUEGO DE INSTRUCCIONES DE UN COMPUTADOR. 2. MODOS DE DECCIONAMIENTO. Inmediato. Directo. Absoluto. Relativo. Indirecto. Implícito. Instrucciones
Más detallesClasificación del procesador según el número de referencias a memoria.
Estructura de Computadores Tema 1. El sistema computador Estructura general de un computador. Arquitectura de Von Neumann. Unidades generales: procesador, memoria, entrada/salida, unidad de control. Niveles
Más detallesArquitectura de Computadoras. Simulador WINMIPS64
Arquitectura de Computadoras Simulador WINMIPS64 Procesador MIPS 32 registros de uso general: r0.. r31 (64 bits) excepto r0 siempre igual a 0 32 registros de punto flotante: f0.. f31 (64 bits) 2 30 palabras
Más detallesFunciones y Datos en Intel 8086
y Datos en Intel 8086 Departamento de Arquitectura 1 1 Instituto de Computación Facultad de Ingeniería Universidad de la República Arquitectura de Computadoras, 2016 Temas 1 2 Tipos atómicos Tipos estructurados
Más detalles8.4. El software en los μprocesadores
8.4. El software en los μprocesadores Ejemplo de comandos de la CPU: Tarea: Sumar dos números A y B. Suponer los datos A y B almacenados en las posiciones 1000 2 y 1010 2 respectivamente. El resultado
Más detallesProcesadores ISA Macroarquitecura - Interfaces
Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC2721 Arquitectura del Computador I Prof. Osberth De Castro Clase 04 Procesadores ISA Macroarquitecura - Interfaces ISA General Modelos
Más detallesUnidad 3. El procesador I: Diseño del juego de Instrucciones. El lenguaje máquina
Fundamentos de Microprocesadores Unidad 3. El procesador I: Diseño del juego de Instrucciones. El lenguaje máquina Escuela Politécnica Superior UAM Copyright 2007 Elsevier, Digital Design and Computer
Más detallesSebastián García Galán
Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán Sgalan@ujaen.es TEMA 1: INTRODUCCIÓN A LOS COMPUTADORES DIGITALES 1.1 CONCEPTO DE COMPUTADOR
Más detallesLA CESIUS. Dónde estamos?
LA CESIUS ESTRUCTURA Y PROGRAMACIÓN Dónde estamos? Estructura de J. von Neumann Historia 1941 - Plankalkül K. Zuse, ingeniero (GE, 1910/95) 1943 - ENIAC 1er comp. controlada por programa (Z3 1941) 1952
Más detallesEjercicios del tema 4. El procesador
jercicios del tema 4. l procesador jercicio 1. Considere un procesador de 32 bits con una frecuencia de reloj de 500 MHz con la estructura del mostrado en el jercicio 3. La memoria se direcciona por bytes
Más detallesEstructura de Computadores
Estructura de Computadores 4.- Programación en Ensamblador Parte IV Contenido Subrutinas. Llamadas al sistema. Página 2 Subrutinas Módulos de programa que pueden reutilizarse en distintos puntos del programa.
Más detallesArquitectura de Computadores II Clase #3
Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control
Más detallesARQUITECTURA VON NEUMANN
ARQUITECTURA VO EUMA Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de Entrada
Más detallesEstructura y Tecnología de Computadores. Módulo C. Arquitectura del procesador. Tema 4. Modos de direccionamiento y tipos de datos
1 Estructura y Tecnología de Computadores Módulo C. Arquitectura del procesador Tema. Modos de direccionamiento y tipos de datos José Manuel Mendías Cuadros Dpto.. Arquitectura de Computadores y Automática
Más detallesEl repertorio de instrucciones
Capítulo 2 El repertorio de instrucciones 2.1. Introducción El funcionamiento de la CPU está determinado por las instrucciones que ejecuta. Estas instrucciones se denominan instrucciones máquina o instrucciones
Más detallesCS2: Unidad de datos (UD)
S2: Unidad de datos (UD) ambios respecto al S1: Ancho datos: 12 bits Ancho direcciones: bits Rotación del registro A con carry LS, DS, IS TP, TIR, TSP W4, W, R 4 SP[] MAR[] IR 7-0 IR[12] IR 11- P[] DB
Más detallesOrganización Básica de un Computador y Lenguaje de Máquina
Organización Básica de un Computador y Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 Organización Básica
Más detallesEnsamblador martes, 9 de septiembre de :11
Ensamblador martes, 9 de septiembre de 2014 18:11 Estructura de computadores página 1 Estructura de computadores página 2 Estructura de computadores página 3 12:06 Estructura de computadores página 4 Estructura
Más detallesTema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Más detallesEstructura de Computadores. Problemas de Instrucciones y Direccionamientos
Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Departamento de Arquitectura y Tecnología de Sistemas Informáticos Octubre 2009 1. Sea un computador con palabras y direcciones
Más detallesConceptos de Arquitectura de Computadoras Curso 2015
PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.
Más detallesTema: Lenguaje ensamblador embebido
Compiladores. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Lenguaje ensamblador embebido Contenido En esta guía se presenta una breve introducción a las estructuras
Más detallesUnidad 5 Unidad central de proceso
Unidad 5 Unidad central de proceso Objetivo El objetivo de esta unidad es que el alumno logre: entender el funcionamiento básico de la Unidad Central de Proceso (UCP), definir las componentes básicas de
Más detallesIntroducción a la arquitectura de computadores
Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina
Más detallesOrganización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico
Organización de computadoras Clase 4 Universidad Nacional de Quilmes Lic. Martínez Federico Memoria: Organización Lectura Escritura Direcciones Qué pasó? Qué pasó? Memoria: Organización Lectura Escritura
Más detallesINSTRUCCIONES. LA ENERGIA DE LA MAQUINA Fundamentos de Computadores Capítulo segundo
INSTRUCCION LA ENERGIA DE LA MAQUINA Fundamentos de Computadores Capítulo segundo Departamento de Automática. Area de Arquitectura y Tecnología de Computadores. INTRODUCCION Computador: se limita a ejecutar
Más detallesTema 4. Fundamentos del ensamblador
Tema 4. Fundamentos del ensamblador Laboratorio de Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 30 Índice Filosofía de programación Organigramas
Más detalles