Pr. Dr. Xavier Bonnaire

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Pr. Dr. Xavier Bonnaire"

Transcripción

1 Pr. Dr. Xavier Bonnaire Slide 1 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

2 Temario Introducción Estructura Básica de un Computador Lenguaje de Máquina Básico Instrucciones para decisiones Procedimientos Direccionamiento Assemblers y Linkers Slide 2 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

3 Introducción Para programar un computador digital Se debe usar su propio lenguaje de programación Es decir el lenguaje de programación del procesador El lenguaje de programacion del procesador La palabras del lenguaje se denominan instrucciones El vocabulario se llama el conjunto de instrucciones Varios lenguajes Casi todo los procesadores tienen un conjunto de instrucciones diferente Algunos son compatibles (Intel P4 y AMD Athlon, etc...) Cada uno tiene instrucciones especiales Slide 3 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

4 Estructura Básica de un Computador Un computador digital se compone de 3 grandes bloques El Procesador El Sistema de Memoria El Sistema de Entrada / Salida El Procesador es el elemento principal Se implementa con un Chip VLSI Está formado por La Unidad de Control El Camino de Datos Slide 4 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

5 Estructura de un Computador Compilador Unidad de Control Entrada MEMORIA Camino de Datos Salida Procesador Slide 5 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

6 Estructura de un Computador Unidad de Control Camino de Datos Entrada MEMORIA Salida PCI BUS Procesado r Tarjeta Video Disco Duro Slide 6 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

7 Estructura de un Computador PCI Slot AGP Slot Procesador Socket Chipset Clock CMOS Li-Ion Bat. RAM Slolts Hard Disk IDE Conectors Power Conector Slide 7 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

8 Procesador Conector Slide 8 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

9 Lenguaje de Máquina Básico Consideraremos la máquina MIPS para nuestro estudio El procesador MIPS tiene 32 bits Procesadores R3000 y R4000 Se desarrolló con tecnología RISC Su diseño es lo suficientemente general como para entender el lenguaje de máquina de cualquier procesador. Los procesadores tipo Pentium 4, AMD Athlon XP, etc.. pueden tener un conjunto de instrucciones muchos más grande que el MIPS Slide 9 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

10 Lenguaje Assembly y de Máquina Lenguage Assembly Una forma de representar las instrucciones y operandos del lenguaje del procesador Forma que puede entender el ser humano Lenguaje de Máquina La representacion del lenguaje del procesador al nivel binario Una serie de bytes que representan las instrucciones y operandos El Assembler El programa que permite pasar de la forma Assembly a la forma lenguaje de máquina Slide 10 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

11 Lenguaje de Alto Nivel - Procesador Compilador Lenguaje de Alto Nivel (C, Java,...) No depende del Procesador Assembler Lenguaje Assembly Lenguaje Máquina Linker Lenguaje Máquina Ejecutable Slide 11 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

12 Aritmética (Assembly) Todo computador debe ser capaz de realizar operaciones aritméticas. Sumas y restas en MIPS se realizan de la siguiente manera: add a,b,c#a b + c sub a,b,c #a b - c Oper 1 destino Oper 2 Oper 2 Regla 1 de diseño: Simplicidad regularidad desempeño Slide 12 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

13 Ejemplos Código en C: a=b+c; d=a-e; Código en C: f=(g+h)-(i+j) Lenguaje de Máquina: add a,b,c sub d,a,e..? Slide 13 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

14 Operadores y Registros A diferencia de los lenguajes de alto nivel Los operandos de las instrucciones aritméticas no pueden ser variable. Son memorias muy rápidas llamadas registros. Un registro de la máquina MIPS tiene 32 bits. Un grupo de 32 bits, se denomina palabra (Word) Una colección de 32 registros rápidos se denomina Archivo de Registros Por qué el archivo de registros tiene sólo 32 registros? Lo pequeño es rápido (regla 2 de diseño) Slide 14 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

15 Operadores y Registros La identificación de los registros se puede hacer usando números (del 0 al 31) Usaremos $s0, $s1,..., $sn Para designar registros que corresponden a variables de programas. Usaremos $t0, $t1,..., $tn Para designar registros que corresponden a variables temporales. Slide 15 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

16 Ejemplos f=(g+h)-(i+j) add $t0,$s1,$s2 g+h # $t0 add $t1,$s3,$s4 i+j f g+h i+j sub $s0,$t0,$t1 $t0-$t1 # $t1 # f Slide 16 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

17 Tratamiento de Arreglos Los lenguajes de programación Además de manejar variables simple. Son capaces de manipular estructuras más complejas. Estructuras de datos como los arreglos, son mantenidos en memoria principal. Para llevar una palabra de memoria a un registro se utiliza la instrucción Load Word lw Reg1, Const(Reg2) Ex: lw $s1, 100($s2) $s1 = Memory[$s ] Slide 17 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

18 Ejemplo Compilar a mano, la siguiente expresión en C: g=h+a[8]; Constante Segundo registro Resultado lw $t0,8($s3) #$t0 A[8] add $s1,$s2,$t0 #g h+a[8] Resultado Final h La dirección de memoria se obtiene sumando una constante con el contenido del segundo registro Slide 18 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

19 Offset y Registro Base lw $t8,8($s3) Offset Registro Base La constante en una instrucción de transferencia se denomina offet y registro que se le suma para formar la dirección, se denomina registr Slide 19 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

20 Restricción de Alineamiento La memoria principal está organizada en Bytes. Los procesadores están organizados en registros de 32 bits (palabras) Esto significa que las direcciones son direcciones de Bytes 32 Bits = 4 Bytes La forma de ubicar Bytes en palabras da origen a dos organizaciones distintas Big Endian (MIPS, Sparc, PowerPC,...) Little Endian (Intel Familly, AMD,...) Slide 20 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

21 Big Endian y Little Endian 32 Bits Byte 3 Byte 2 Byte 1 Byte 0 Most Significant Byte Least Significant Byte Memoria Big Endian Memoria Little Endian Bytes Bytes Bytes Bytes Direcciónes de palabras Slide 21 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

22 Ejemplo - Arreglo con variable índice g=h+a[i] Asumir que A tiene 100 elementos. La base está en el registro $s3 y además el compilador asocia las variables: g $s1 h $s2 i $s4 Se pide el código assembly correspondiente a la sentencia C anterior Slide 22 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

23 Ejemplo - Solución g=h+a[i] Antes de cargar A[i] en un registro temporal Se necesita su dirección. Antes de sumar i a la base del arreglo para generar su dirección, es necesario multiplicar el índice i por 4, debido a la forma de direccionar bytes. La multiplicación por dos se puede generar: i+i=2i, 2i+2i=4i, etc.. Slide 23 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

24 Ejemplo - Solución add $t1,$s4,$s4 #$t1 2*i add $t1,$t1,$t1 #$t1 4*i Para obtener la dirección de A[i], necesitamos sumar $t1 con la base de A que está en $s3 add $t1,$t1,$s3 # $t1 dirección A[i] con esta dirección se puede cargar A[i] en un registro temporal lw $t0, 0($t1) # $t0 A[i] Finalmente el resultado queda en g: add $s1,$s2,$t0 # g h+ A[i] Slide 24 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

25 Assembly a Máquina La instrucción que se representa en assembly por add $t0,$s1,$s2 en una instrucción de máquina (notación decimal) queda: Formato tipo R 6b 5b 5b 5b 5b 6b OP rs rt rd shamt funct add $s1 $s2 $t0 32 add Slide 25 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

26 Campos del Formato op: código de operación rs: Primer operando fuente rt: Segundo operando fuente rd: Registro destino shamt: Shift amount (se usa en instrucciones de desplazamiento) funct: selecciona una variación específica del código de operación (Código de operación expandido) Slide 26 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

27 Formato Tipo I (Inmediato) Consideremos la instrucción assembly: lw $t0, 32($s3) # $t0 A[8] Formato tipo I 6b 5b 5b 16b OP rs rt dirección lw $s3 $t0 Slide 27 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

28 Formato Tipo I (Inmediato) Consideremos la instrucción assembly: sw $t0, 32($s3) # A[8] $t0 Formato tipo I 6b 5b 5b 16b OP rs rt dirección sw $s3 $t0 Slide 28 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

29 Resumen de Formatos Es un buen principio de diseño tomar compromisos: Bits R I regularidad de formatos y tamaño del código de operación (número de instrucciones) 6 op op 5 rs rs 5 rt rt 5 rd 5 6 shamt funct Dirección Slide 29 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

30 Pseudo Instrucciones Muchas instrucciones Assembly no existen en el Lenguaje de Máquina, pero pueden ser generadas con otras instrucciones. Un ejemplo es la instrucción move que permite copiar un registro en otro. Esta instrucción no existe en la máquina MIPS Ejemplo move $s1,$s2 #$s1 $s2 El Assembler MIPS genera: add $s1,$0,$s2 #$s1 $s2+ 0 Slide 30 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

31 Instrucciones para decisiones La máquina MIPS presenta dos instrucciones para la toma de decisiones: Beq (Branch Equal) beq reg1, reg2, L1 If (reg1 == reg2) goto L1 Bne (Branch Not Equal) bne reg1, reg2, L1 If (reg1!= reg2) goto L1 Slide 31 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

32 Ejemplo 1 Generar el lenguaje de máquina para el codigo C: if(i==j) goto L1; f=g+h; L1: f=f-i; Asumir que las 5 variables: f,g,h,i,j; corresponden a los 5 registros: $s0,...,$s5 Slide 32 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

33 Solución beq $s3,$s4,l1 add $s0,$s1,$s2 L1: sub $s0,$s0,$s3 # if(i==j) goto L1 # f=g+h # f=f-i L1 representa la dirección de la instrucción de Slide 33 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

34 Ejemplo 2 Usando las mismas variables y registros del ejemplo anterior, generar código de máquina para if(i==j) f=g+h; else f=g-h; Slide 34 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

35 Solución Este ejercicio introduce otro tipo de salto llamado salto incondicional. La instrucción MIPS se denomina jump y se abrevia j J dirección bne $s3,$s4,else #if(i!=j)goto Else add $s0,$s1,$s2 #f=g+h j Exit #goto Exit Else: sub $s0, $s1, $s2 #f=g-h Exit: Slide 35 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

36 Saltos Incondicionales j Exit #goto Exit jr $t1 #goto $t1 J es del tipo J 6b 26b dirección OP Jr es del tipo R 6b 5b 5b 5b 5b 6b OP rs rt rd shamt funct 0 rs Slide 36 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

37 Compilación de Loops Compilar el código C: while (A[i]==k) i=i+j; Asumiremos que i,j k corresponden a los registros $s3, $s4, y $s5. Además la base del arreglo A está guardada en $s6. El primer paso es cargar A[i] en un registro temporal: Slide 37 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

38 Compilación de Loops Loop: add $t1,$s3,$s3 add $t1,$t1,$t1 add $t1,$t1,$s6 #$t1=2*i #$t1=4*i #$t1 es la dirección de A[i] lw $t0,0($t1) #$t0=a[i] bne $t0,$s5,exit # ir a Exit si A[i]!= k add $s3,$s3,$s4 #i=i+j j Loop Exit: Slide 38 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

39 Comparaciones La máquina MIPS tiene dos instrucciones de comparación: slt $s1,$s2,$s3 #set on less than #if $s2<$s3 $s1 1 else $s1 0 Slide 39 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

40 Comparaciones Saltar Menor Que: se puede construir: slt $s1,$s2,$s3 bne $s1,$0, Menos #va a Menos si #$s1 0, o sea si $s2 < $s3 Existe la pseudo instrucción blt (branch less than), pero el compilador genera las dos instrucciones anteriores si encuentra blt Slide 40 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

41 Ejemplo 3 El Switch Compilar el código C: switch(k) case 0: case 1: case 2: case 3: } { f=i+j; f=g+h; f=g-h; f=i-h; break; break; break; break; //k=0 //k=1 //k=2 //k=3 asumiremos que las 6 variables desde f a k, corresponden a los registros $s0 a $s5. El registro $t2 contiene el valor 4 Slide 41 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

42 Switch Valores de Registros f $s0 g $s1 h $s2 i $s3 j $s4 Slide 42 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María k

43 Solución slt bne slt beq Usaremos la variable k para indexar una tabla de salto. El salto se hace vía el valor cargado. Lo primero es verificar rangos para k $t3,$s5,$0 $t3,$0,exit $t3,$s5,$t2 $t3,$0,exit # # # # k <0? si k<0, goto Exit k<4? si k >=4 goto Exit Slide 43 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

44 Solución Hay que multiplicar por 4 el valor de k para convertirlo en dirección de byte add $t1,$s5,$s5 add $t1,$t1,$t1 # $t1=2*k # $t1=4*k Las direcciones de los códigos correspondientes a los distintos valores de k, se mantienen en una tabla de salto Slide 44 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

45 Solución Asumiremos una secuencia de 4 palabras de memoria, comenzando de la dirección almacenada en $t4. Obtenemos así la dirección de L0, L1,L2 y L3 Tabla de Saltos L0 L1 L2 L3 Slide 45 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

46 Solución Obtención de la dirección de L0, L1,L2 y L3 add $t1,$t1,$t4 #$t1=dirección de Tabla Salto [k] lw $t0,0($t1) #$t0=tabla Salto[k] Slide 46 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

47 Solución Los primeros tres casos de switch son los parecidos: jr $t0 #salto basado en registro $t0 L0: add $s0,$s3,$s4 j Exit L1: add $s0,$s1,$s2 j Exit L2: sub $s0,$s1,$s2 j Exit Slide 47 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

48 Solución Finalmente: L3: sub $s0,$s3,$s4 Exit: Slide 48 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

49 Procedimientos Los procedimientos o subrutinas son las herramientas más poderosas para estructurar programas. En la ejecución de un procedimiento un programa sigue los siguientes pasos: Poner parámetros en un lugar accesible Transferir el control al procedimiento Realizar la tarea Poner el resultado en lugar accesible Volver el control al punto original Slide 49 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

50 Procedimientos El software MIPS asigna los siguientes registros a Procedimientos: $a0-$a3: Argumentos para el paso de parámetros $v0-$v1: Registros para el retorno de valores $ra: Dirección de retorno para volver al punto original La máquina MIPS incluye la instrucción jal (Jump And Link) jal DirecciónProcedimiento Slide 50 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

51 Jal Jump And Link La instrucción jal DirecciónProcedimiento Tiene como efecto saltar a la dirección indicada, pero simultáneamente salva la dirección de retorno en $ra La dirección almacenada en $ra se denomina dirección de retorno. Esto es necesario ya que el mismo procedimiento puede ser invocado en diferentes partes del programa Slide 51 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

52 El Program Counter - PC Es necesario disponer de un registro que permita almacenar la dirección de la instrucción que está siendo ejecutada. Por razones históricas este registro se denomina PC: Program Counter. Debería llamarse IAR (Instruction Address Registre). La instrucción jal salva PC+4 en el registro $ra para establecer la dirección de retorno Slide 52 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

53 El Program Counter - PC Addr 0 PC PC+4 Memoria Instr Instrucción en ejecución Slide 53 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

54 Retorno de procedimiento La instrucción que permite volver al punto inicial es: jr $ra Procedimiento Prog. Principal Dir1 PC instruc1 jal Dir1 PC+4 jr $ra Slide 54 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

55 Procedimientos Anidados Lo normal en el desarrollo de un programa es que un procedimiento pueda llamar a otro, y que también se pueda llamar a si mismo en forma directa o indirecta (Recursividad) A... Jal B B instb... jal C;... jr $ra C inst1... jr $ra Slide 55 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

56 El Stack Es necesario el uso de un stack para permitir flexiblemente usar procedimientos anidados y recursividad Addr 0 Registro sp (Stack Pointer) Addr n Slide 56 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

57 El Stack Agregar Datos (PUSH) Addr 0 Addr 0 sp sp $s0 sp = sp - 4 Addr n Add Inmediate Addr n addi $sp, $sp,-4 sw $s0, 0($sp) Slide 57 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

58 Código usando Stack B A... jal B; addi $sp,$sp,-4 sw $ra,0($sp) jal C; lw $ra,0($sp) addi $sp,$sp,4... jr $ra C jr $ra Slide 58 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

59 Direccionamiento Dónde ir a buscar un operando? A qué dirección transferir el control del programa? La Máquina MIPS presenta todos los modos de direccionamiento de las máquinas reales Los mecanismos de direccionamiento que estudiaremos son: Tipo Registro Operandos Inmediatos Direccionamientos Absolutos Direccionamientos relativos al PC Direccionamiento Registro Base Slide 59 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

60 Tipo Registro Lo más fácil es que el operando se encuentre en un registro. Este es el caso de las instrucciones tipo R. Ejemplo: add,$s1,$s2,$s3 Formato tipo R 6b 5b 5b 5b 5b 6b OP rs rt rd shamt funct add $s1 $s2 $s0 32 add Slide 60 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

61 Operandos Inmediatos Estadísticas de programas muestran que el 50% de los operandos son constantes, y estas constantes son números relativamente pequeños. Una forma es almacenar las constantes en la memoria principal y recuperar mediante una instrucción lw Ejemplo en C: a=a+5; Slide 61 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

62 Operandos Inmediatos Supongamos que el número 5 lo guardamos en la dirección DIREC, y que la variable a la almacenamos en el registro $s1 Entonces a=a+5 se genera: lw $t1,direc($0) add $s1,$s1,$t1 Existe una mejor solución? Slide 62 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

63 Instrucciones Inmediatas: addi Una alternativa al código anterior es: addi $s1,$s1,5 Formato tipo I 6b 5b 5b 16b OP rs rt Operando Inmediato 8 rs rt valor addi Pb: limitación a 16bits para el operando inmediato Slide 63 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

64 Instrucciones Inmediatas: slti,lui Otras instrucciones con operandos inmediatos son: slti $t1,$s1,5 #Set on Less Than Inmediate) if($s1<5)$t1=1 Y lui $s1,255 #Load Upper Inmediate Slide 64 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

65 lui lui $s1,255 #Load Upper Inmediate 6b 5b 5b 16b OP rs rt Operando Inmediato $S0 255 $s bits upper más significativos 16 bits lower menos significativos Slide 65 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

66 Direccionamiento Absoluto j 1000 # goto 1000 Formato tipo J 6b 26b El espacio de direcciones alcanzable es de 64MB El código que se genera no es relocalizable Slide 66 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

67 Direccionamiento Relativo al PC bne $s1,$s2,exit # goto Exit si $s1!=$s2 Formato tipo I 6b 5 5b 5b rs($s1) rt($s2) 16b Exit El espacio de direcciones alcanzable es de 216 Bytes Para aumentar este espacio, se considera que el cam de 16bits son direcciones de palabras de 32bits Slide 67 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

68 Direccionamiento Relativo al PC Memoria PC Limitado por 16 Bits Slide 68 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

69 Direccionamiento Relativo al PC Ejemplo: a: bne $s2,$s3,fin add $t4,$s4,$s6 j a FIN: $s2 8, $s3 21 $t4 19, $s6 20 a: Dirección Slide 69 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

70 Resumen Direccionamientos Tipo Registro OP rs rt rd shamt funct Memoria Tipo Base OP rs registro rt dirección + Slide 70 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

71 Resumen Direccionamientos Inmediat o OP Relativo al PC OP rs rs PC rt rt dirección Memoria + Slide 71 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

72 Resumen Direccionamientos Absoluto OP Memoria Dirección Slide 72 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

73 Assemblers y Linkers El lenguaje assembly es la representación simbólica de la codificación binaria de un programa. El lenguaje assembly tiene directivas que no generan código:.data,.global Los roles que tiene el lenguaje assembly son: Lenguaje intermedio para un compilador Embedded computers Slide 73 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

74 Compilacion y Link Programa Compilador Assembler Lenguaje Assembly Computador Ejecutable Linker Slide 74 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

75 Conviene programar en Assembly? Programar en Assembly tiene varias desventajas: Específico a una máquina (baja portabilidad) La relación entre líneas de código de un lenguaje de alto nivel y Assembly se denomina factor de expansión Estudios demuestran que un escribe el mismo número de código por día programando programando en un lenguaje programador líneas de en Assembly o de alto nivel. Si x es el factor de expansión, la productividad de un Lenguaje de Alto Nivel respecto a Assembly es X Slide 75 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

76 Pero... A veces es necesario programar en Assembly Algunas partes de los Sistemas Operativos Cuando se busca la máxima velocidad posible Clock Interruption Routine Códigos críticos Para unos embedded softwares Aviones Autos Para Devices Drivers Slide 76 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María

Procesador MIPS - Registros

Procesador 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 detalles

El repertorio de instrucciones

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 detalles

INTRUCCIONES: LENGUAJE MAQUINA

INTRUCCIONES: 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 detalles

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

Estructura 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 detalles

Organizació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 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 detalles

3. Instrucciones: lenguaje de la máquina

3. Instrucciones: lenguaje de la máquina 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 2009 2010 Raúl

Más detalles

UNIDAD 2: Instrucciones: el lenguaje de las computadoras.

UNIDAD 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 detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas 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 detalles

Organización de Computadoras. Principios de Conjuntos de Intrucciones

Organizació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 detalles

Unidad 3. Facultad de Ciencias Departamento de Electrónica

Unidad 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 detalles

ELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo

ELO311 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 detalles

Tema 3 (III) Fundamentos de la programación en ensamblador

Tema 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 detalles

Estructuras de Computadores I Tarea 02 02/99

Estructuras 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 detalles

Arquitectura del MIPS: Introducción

Arquitectura 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 detalles

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

Arquitecturas 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 detalles

Arquitectura del procesador MIPS R2000

Arquitectura 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 detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios 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 detalles

Organización Básica de un Computador y Lenguaje de Máquina

Organizació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 detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios 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 detalles

Generación de un ejecutable

Generació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 detalles

Modelo de von Neumann

Modelo 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 detalles

Fundamentos de los Computadores Grado en Ingeniería Informática

Fundamentos 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 detalles

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017

Arquitectura 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 detalles

Arquitectura de Computadores II Clase #3

Arquitectura 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 detalles

Organización procesador MIPS

Organizació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 detalles

Arquitectura 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 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 detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema 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 detalles

Abstracción de bifurcaciones y saltos.

Abstracción de bifurcaciones y saltos. Capítulo 5. 1 Abstracción de bifurcaciones y saltos. 5.1. Operaciones lógicas. En el lenguaje C: Una expresión es falsa si su valor es cero; verdadera si es diferente de cero. Si el resultado de una operación

Más detalles

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Arquitectura 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 detalles

Introducció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 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 detalles

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Fundamentos 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 detalles

La Unidad Aritmética

La Unidad Aritmética 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 1 2 3 4 5 En este capítulo profundizaremos la aritmética computacional

Más detalles

Programación en ensamblador Ejercicios propuestos

Programació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 detalles

Asignatura de Organización de Computadoras. Alberto Hernández Cerezo. Cristian Tejedor García. Rodrigo Alonso Iglesias. Universidad de Valladolid

Asignatura de Organización de Computadoras. Alberto Hernández Cerezo. Cristian Tejedor García. Rodrigo Alonso Iglesias. Universidad de Valladolid Asignatura de Organización de Computadoras ARQUITECTURA MIPS SEGUNDO TRABAJO Alberto Hernández Cerezo Cristian Tejedor García Rodrigo Alonso Iglesias Universidad de Valladolid Segundo de Ingeniería Técnica

Más detalles

Grupo de Arquitectura y Tecnología de Computadores (ARCOS)

Grupo 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 detalles

Ejercicios del tema 4. El procesador

Ejercicios 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 detalles

5 Lenguaje de Máquina

5 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 detalles

Repaso Registros internos Z80 1/37

Repaso 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 detalles

ESTRUCTURA 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. 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 detalles

INSTRUCCIONES: EL LENGUAJE DEL PROCESADOR

INSTRUCCIONES: EL LENGUAJE DEL PROCESADOR INSTRUCCIONES: EL LENGUAJE DEL PROCESADOR ARQUITECTURA DEL PROCESADOR II La tecnología de las computadoras modernas, requiere que los profesionales de las distintas especialidades en ciencias de la computación,

Más detalles

Cuando se ejecuta un procedimiento, intrínsecamente se están realizando los siguientes pasos:

Cuando se ejecuta un procedimiento, intrínsecamente se están realizando los siguientes pasos: 2.5 Soporte de procedimientos El manejo de procedimientos o rutinas es uno de los aspectos más importantes de la programación estructurada; por lo que cualquier repertorio de instrucciones debe de incluirlo

Más detalles

Sección de procesamiento: El camino de datos

Secció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 detalles

Repaso concepto de programa

Repaso 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 detalles

Arquitectura de Computadoras

Arquitectura 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 detalles

El repertorio de instrucciones

El 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 detalles

El nivel ISA (II)! Conjunto de Instrucciones

El 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 detalles

El procesador. Datapath para las instrucciones de brinco

El 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 detalles

Tema 3 (I) Fundamentos de la programación en ensamblador

Tema 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 detalles

El procesador. Diseño del control

El 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 detalles

Organizació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 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 detalles

Una expresión es falsa si su valor es cero; verdadera si es diferente de cero.

Una expresión es falsa si su valor es cero; verdadera si es diferente de cero. 5. Abstracción de bifurcaciones y saltos. 5.1. Operaciones lógicas. En el lenguaje C: Una expresión es falsa si su valor es cero; verdadera si es diferente de cero. Si el resultado de una operación lógica

Más detalles

Fundamentos y Arquitectura de Computadores (ITTSE UV)

Fundamentos 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 detalles

Intel Departamento de Arquitectura 1. Facultad de Ingeniería Universidad de la República. Arquitectura de Computadoras, 2016

Intel Departamento de Arquitectura 1. Facultad de Ingeniería Universidad de la República. Arquitectura de Computadoras, 2016 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 3 Registros Segmentación Stack 4 Set

Más detalles

Fundamentos y Arquitectura de Computadores (ITTSE UV)

Fundamentos 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 detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

UNIVERSIDAD 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 detalles

Arquitectura de Computadores II Clase #3

Arquitectura 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 detalles

Unidad 3. El procesador I: Diseño del juego de Instrucciones. El lenguaje máquina

Unidad 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 detalles

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012 /4/22 Introducción rquitectura de Computadoras Primavera 22 Construyendo el path Esquema de implementación Simple Unidad de Control 2 Los elementos básicos de un sistema de computo son: Nos centraremos

Más detalles

GUIA 24: REPERTORIO DE INSTRUCCIONES

GUIA 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 detalles

Estructura de Computadores. Capítulo 3b: Programación en

Estructura de Computadores. Capítulo 3b: Programación en Estructura de Computadores Capítulo 3b: Programación en ensamblador del MIPS. José Daniel Muñoz Frías Universidad Pontificia Comillas. ETSI ICAI. Departamento de Electrónica y Automática Estructura de

Más detalles

Arquitectura de Computadoras. Simulador WINMIPS64

Arquitectura 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 detalles

Ejercicios del tema 4. El procesador

Ejercicios 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 detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos 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 detalles

Tema 6: Descripción del ISA del MIPS

Tema 6: Descripción del ISA del MIPS Arquitectura de Computadores Tema 6: Descripción del ISA del MIPS Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom Arquitectura de Computadoras UNT D. Cohen 1 2014 Temario

Más detalles

Laboratorio 1 y 2: Programación en C, Assembler MIPS, y uso de Simulador MIPS32: PCSpim

Laboratorio 1 y 2: Programación en C, Assembler MIPS, y uso de Simulador MIPS32: PCSpim Laboratorio 1 y 2: Programación en C, Assembler MIPS, y uso de Simulador MIPS32: PCSpim Objetivos. Estudiar algunos aspectos básicos de la programación en lenguaje C, y ambientes de programación integrados

Más detalles

ELO311 Estructuras de Computadores Digitales. Ensamblador MIPS

ELO311 Estructuras de Computadores Digitales. Ensamblador MIPS ELO311 Estructuras de Computadores Digitales Ensamblador MIPS Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization &

Más detalles

Práctica 3: Programación en ASM Orga 1

Prá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 detalles

Construyendo Programas más Complejos

Construyendo 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 detalles

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4 Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 La Unidad de Control La instrucción

Más detalles

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4 Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 1 La Unidad de Control La instrucción

Más detalles

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

ISA (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 detalles

Organización del Computador I Verano. MIPS (1 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

Organización del Computador I Verano. MIPS (1 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Lenguajes para la máquina Las computadoras son circuitos electrónicos,

Más detalles

FUNDAMENTOS DE MICROPROCESADORES SOLUCIONES A LOS PROBLEMAS DE LA UNIDAD-3.- EL PROCESADOR I: EL LENGUAJE MAQUINA

FUNDAMENTOS 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 detalles

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.

Funciones. 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 detalles

Tema 3 (III) Fundamentos de la programación en ensamblador

Tema 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 detalles

ESTRUCTURA 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. 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 detalles

Pr. Dr. Xavier Bonnaire

Pr. Dr. Xavier Bonnaire Pr. Dr. Xavier Bonnaire Slide 1 Temario Introducción Registros Multiplexores Codificadores y Decodificadores Archivos de Registros Unidad Aritmética Memorias Slide 2 Introducción Componentes Digital Estructurados

Más detalles

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

Ejercicio 1. Considere el siguiente fragmento en ensamblador: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 1:30 horas. NO se podrán

Más detalles

CS2: Unidad de datos (UD)

CS2: 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 detalles

Introducción a la arquitectura de computadores

Introducció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 detalles

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Unidad 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 detalles

Bus de direcciones. Bus de datos

Bus de direcciones. Bus de datos 1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.

Más detalles

Organización de Computadoras. Clase 7

Organización de Computadoras. Clase 7 Organización de Computadoras Clase 7 Temas de Clase Formatos de instrucción Modos de direccionamiento Notas de Clase 7 2 Elementos de una instrucción de máquina Código de operación especifica la operación

Más detalles

Programando sobre MIPS64

Programando 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 detalles

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

Estructura 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 detalles

Tema 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 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 detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Camino de datos y control: implementación uniciclo Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa. Introducción. 2. Construcción

Más detalles

ARQUITECTURA VON NEUMANN

ARQUITECTURA 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 detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores Perpectiva Histórica Pasado y Presente Avances Tecnológicos Primer computador Electrónico University of Pennsylvania ENIAC (Electronic Numerical Integrator and Calculator, 18.000

Más detalles

TEMA 1: Concepto de ordenador

TEMA 1: Concepto de ordenador TEMA 1: Concepto de ordenador 1.1 Introducción Los ordenadores necesitan para su funcionamiento programas. Sin un programa un ordenador es completamente inútil. Para escribir estos programas necesitamos

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen constará de dos partes: 1ª parte: Test, con una puntuación de 5 puntos y 40 minutos de tiempo 2ª parte: Ejercicios prácticos, con una puntuación

Más detalles

Creación del ambiente de trabajo.

Creación del ambiente de trabajo. Capítulo 2. 1 Creación del ambiente de trabajo. Una vez instalado el compilador cruzado lcc, éste queda en C:\Program Files\lcc\4.1 Conviene crear una subcarpeta para colocar los ejemplos. Sea ésta ej.

Más detalles

Los números naturales y enteros en el 80X86 y en LAN

Los números naturales y enteros en el 80X86 y en LAN Los números naturales y enteros en el 80X86 y en LAN 1. Los números naturales en el 80X86/TASM Representación Sistema de representación En el 80X86 (y en la mayoría de los procesadores), los números naturales

Más detalles

La Unidad de Control y el Camino de Datos

La Unidad de Control y el Camino de Datos 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 1 2 3 Contenido Veremos el diseño completo de un subconjunto

Más detalles

MIPS. Universidad de Sonora 2

MIPS. Universidad de Sonora 2 MIPS MIPS (Microprocessor without Interlocked Pipeline Stages) es una familia de microprocesadores RISC desarrollada por MIPS Technologies desde 1981 y por Imagination Technologies desde 2012. Principio

Más detalles

Formato de instrucciones

Formato de instrucciones Formato de instrucciones Material Elaborado por el Profesor Ricardo González A partir de Materiales de las Profesoras Angela Di Serio María Blanca Ibañez Elementos de una instrucción de máquina add rd

Más detalles