Práctica 2 - Assembler MIPS
|
|
|
- Magdalena Piñeiro Palma
- hace 8 años
- Vistas:
Transcripción
1 Práctica 2 - Assembler MIPS Organización del Computador 1 Verano 2014 Se deberán resolver al menos los ejercicios: 3, 6, 7, 9, 17, 22, 25 de la presente guía. El resto de los ejercicios son opcionales. Ejercicio 1 Para cada una de las siguientes instrucciones expresadas en lenguaje C a. f = g - h; b. f = g + (h - 5); y asumiendo que f, g, h e i representan a variables enteras de 32-bits declaradas previamente: i) Traducir a código assembler MIPS utilizando la cantidad mínima de instrucciones necesarias. ii) Cuántas instrucciones de assembler MIPS fueron necesarias? iii) Si las variables f, g, h e i inicialmente poseen los valores 1, 2, 3 y 4, respectivamente, Cuál es el valor final de f? Para cada una de las siguientes instrucciones expresadas en lenguaje assembler MIPS a. addi f, f, 4 b. add f, g, h add f, i, f i) Traducir a código C utilizando la cantidad mínima de instrucciones necesarias. ii) Si las variables f, g, h e i inicialmente poseen los valores 1, 2, 3 y 4, respectivamente, Cuál es el valor final de f? Ejercicio 2 Para cada una de las siguientes instrucciones expresadas en lenguaje C a. f = g - f; b. f = i + (h - 2); y asumiendo que f, g, h e i representan a variables enteras de 32-bits declaradas previamente: i) Traducir a código assembler MIPS utilizando la cantidad mínima de instrucciones necesarias. ii) Cuántas instrucciones de assembler MIPS fueron necesarias? iii) Si las variables f, g, h e i poseen los valores 1, 2, 3 y 4, respectivamente, Cuál es el valor final de f? 1
2 Para cada una de las siguientes instrucciones expresadas en lenguaje assembler MIPS a. addi f, f, 4 b. add f, g, h sub f, i, f i) Traducir a código C utilizando la cantidad mínima de instrucciones necesarias. ii) Si las variables f, g, h e i poseen los valores 1, 2, 3 y 4, respectivamente, Cuál es el valor final de f? Ejercicio 3 Para cada una de las siguientes instrucciones expresadas en lenguaje C a. f = - g - f; b. f = g + (-f -5); y asumiendo que f y g representan a variables enteras de 32-bits declaradas previamente: i) Traducir a código assembler MIPS utilizando la cantidad mínima de instrucciones necesarias. ii) Cuántas instrucciones de assembler MIPS fueron necesarias? iii) Si las variables f y g poseen los valores 1 y 2, respectivamente, cuál es el valor final de f? Para cada una de las siguientes instrucciones expresadas en lenguaje assembler MIPS a. addi f, f, -4 b. add i, g, h sub f, i, f i) Traducir a código C utilizando la cantidad mínima de instrucciones necesarias. ii) Si las variables f, g, h e i poseen los valores 1, 2, 3 y 4, respectivamente, Cuál es el valor final de f? Ejercicio 4 Para cada una de las siguientes instrucciones expresadas en lenguaje C a. f = - g - A[4]; b. B[8] = A[i-j]; asumiendo que las variables f, g, h, i y j son asignadas a los registros $s0, $s1, $s2, $s3 y $s4, respectivamente, y que las direcciones iniciales de los vectores A y B se encuentran en los registros $s6 y $s7, respectivamente: i) Traducir a código assembler MIPS utilizando la cantidad mínima de instrucciones necesarias. ii) Cuántas instrucciones de assembler MIPS fueron necesarias? iii) Cuántas registros se necesitaron en cada caso? 2
3 Para cada uno de los siguientes códigos en lenguaje assembler MIPS a. sll $s2, $s4, 1 add $s0, $s2, $s3 add $s0, $s0, $s1 b. sll $t0, $s0, 2 # $t0 = f * 4 add $t0, $s6, $t0 # $t0 = &A[f] sll $t1, $s1, 2 # $t1 = g * 4 add $t1, $s7, $t1 # $t1 = &B[g] lw $s0, 0($t0) # $f = A[f] addi $t2, $t0, 4 lw $t0, 0($t2) add $t0, $t0, $s0 sw $t0, 0($t1) asumiendo que las variables f, g, h, i y j son asignadas a los registros $s0, $s1, $s2, $s3 y $s4, respectivamente, y que las direcciones iniciales de los vectores A y B se encuentran en los registros $s6 y $s7, respectivamente: i) Traducir a código C utilizando la cantidad mínima de instrucciones necesarias. Ejercicio 5 La tabla que se presenta a continuación muestra los valores de un vector almacenado en memoria. Asuma que la dirección inicial del vector se guarda en el registro $s6. a. Dirección Dato b. Dirección Dato i) Escribir un programa en C que ordene los datos del vector de menor a mayor. Asumir que los datos de la tabla se encuentran almacenados en una variable de tipo int[ ] denominada Array. La máquina direcciona a byte y una palabra se encuentra compuesta por 4 bytes. ii) Escribir un programa en assembler MIPS que ordene los datos del vector de menor a mayor utilizando la menor cantidad posible de instrucciones. iii) Cuántas instrucciones fueron necesarias en el caso del código assembler MIPS? En el caso de no permitirse el uso del campo inmediato para las instrucciones lw y sw, Cuántas instrucciones serían necesarias para realizar el ordenamiento? Dado los siguientes números que se encuentran expresados en base hexadecimal a. 0xabcdef12 b. 0x
4 i) Traducirlos a decimal. ii) Mostrar cómo se organizan los datos de la tabla en una máquina con un diseño littleendian. Y en una máquina big-endian? Asumir que los datos son almacenados a partir de la dirección de memoria 0. Ejercicio 6 Para cada una de las siguientes instrucciones expresadas en lenguaje C a. f = f + A[2]; b. B[8] = A[i] + A[j]; asumiendo que las variables f, g, h, i y j son asignadas a los registros $s0, $s1, $s2, $s3 y $s4, respectivamente, y que las direcciones iniciales de los vectores A y B se encuentran en los registros $s6 y $s7, respectivamente y que los elementos de los vectores son palabras de 4-bytes: i) Traducir a código assembler MIPS utilizando la cantidad mínima de instrucciones necesarias. ii) Cuántas instrucciones de assembler MIPS fueron necesarias? iii) Cuántos registros se necesitaron en cada caso? Para cada uno de los siguientes códigos en lenguaje assembler MIPS a. sub $s0, $s0, $s1 sub $s0, $s0, $s3 add $s0, $s0, $s1 b. addi $t0, $s6, 4 add $t1, $s6, $0 sw $t1, 0($t0) lw $t0, 0($t0) add $s0, $t16, $t0 asumiendo que las variables f, g, h, i y j son asignadas a los registros $s0, $s1, $s2, $s3 y $s4, respectivamente, y que las direcciones iniciales de los vectores A y B se encuentran en los registros $s6 y $s7, respectivamente: i) Traducir a código C utilizando la cantidad mínima de instrucciones necesarias. ii) Asumiendo que los registros $s0, $s1, $s2, y $s3 contienen los valores 0x A, 0x , 0x E y 0x , respectivamente, $s6 contiene el valor 0x , y la memoria contiene los siguientes valores: Dirección 0x x x Valor 0x x000000C8 0x C Qué valor toma $s0 al final de la ejecución del código assembler? iii) Para cada instrucción MIPS, mostrar su valor de opcode (OP), source register (RS) y target register (RT). Para cada instrucción de tipo I-type, mostrar el valor del inmediate field y para las instrucciones de tipo R-type mostrar el valor del destination register (RD). 4
5 Ejercicio 7 Dados: a (2) b (2) i) Qué número representa en base 10, asumiendo que es un entero complemento a 2? ii) Qué número representa en base 10, asumiendo que es un entero sin signo? iii) Qué número hexadecimal representa? Dados: a. -1 (10) b (10) i) Representar en binario asumiendo complemento a 2. ii) Representar en hexadecimal asumiendo complemento a 2. Ejercicio 8 Dados: a. $s0 = 0x (16) $s1 = 0xD (16) b. $s0 = 0x (16) $s1 = 0xFFFFFFFF (16) i) Qué valor toma $t0 luego de ejecutar la siguiente instrucción assembler MIPS? add $t0, $s0, $s1 $t0 contiene el resultado esperado o ha habido overf low? ii) Qué valor toma $t0 luego de ejecutar la siguiente instrucción assembler MIPS? sub $t0, $s0, $s1 $t0 contiene el resultado esperado o ha habido overf low? iii) Qué valor toma $t0 luego de ejecutar las siguientes instrucciones assembler MIPS? add $t0, $s0, $s1 add $t0, $t0, $s0 $t0 contiene el resultado esperado o ha habido overf low? Dadas las siguientes instrucciones en assembler MIPS: a. add $s0, $s0, $s1 add $s0, $s0, $s1 a. add $s0, $s0, $s1 add $s0, $s0, $s1 add $s0, $s0, $s1 i) Asumiendo que $s0 = 0x y $s1 = 0x , Se obtendrá overf low? ii) Asumiendo que $s0 = 0x y $s1 = 0x , Se obtendrá overf low? iii) Asumiendo que $s0 = 0x8FFFFFFF y $s1 = 0xD , Se obtendrá overf low? 5
6 Ejercicio 9 Para cada valor del registro $s1: a. -1 (10) b (10) i) Asumiendo que el registro $s0 = 0x , si la instrucción add $s0, $s0, $s1 es ejecutada, Dará overf low? ii) Asumiendo que el registro $s0 = 0x , si la instrucción sub $s0, $s0, $s1 es ejecutada, Dará overf low? iii) Asumiendo que el registro $s0 = 0x7FFFFFFF, si la instrucción sub $s0, $s0, $s1 es ejecutada, Dará overf low? Para cada valor del registro $s1: a (2) b (2) i) Asumiendo que el registro $s0 = 0x , si la instrucción add $s0, $s0, $s1 es ejecutada, Dará overf low? ii) Asumiendo que el registro $s0 = 0x , si la instrucción add $s0, $s0, $s1 es ejecutada, Cuál es su resultado en hexadecimal? iii) Asumiendo que el registro $s0 = 0x , si la instrucción add $s0, $s0, $s1 es ejecutada, Cuál es su resultado en decimal? Ejercicio 10 Para número binario que se presenta a continuación: a (2) b (2) i) Qué instrucción MIPS representa? ii) En qué formato está codificada la instrucción (I-type, R-type, J-type)? iii) Si fueran bits de datos, Qué número hexadecimal representan? Para cada instrucción: a. addi $t0, $t0, 0 b. sw $t1 32($t2) i) Mostrar el número en hexadecimal que la respresenta. ii) En qué formato está codificada la instrucción (I-type, R-type, J-type)? iii) Cuál es la representación hexadecimal de los campos opcode, Rs y Rt? Para la instrucción R-type, Cuál es la representación hexadecimal de los campos Rd y funct? Para la instrucción I-type, Cuál es la representación del campo inmediato? Ejercicio 11 Dados: a (16) b (16) 6
7 i) Qué número representa en base 2? ii) Qué número representa en base 10? iii) Qué instrucción MIPS representa? Dados: a. op=0, rs=3, rt=2, rd=3, shamt=0, funct=34 b. op=0x23, rs=1, rt=2, const=0x4 i) En qué formato está codificada la instrucción (I-type, R-type)? ii) Qué instrucción MIPS describe? iii) Cuál es la representación en base 2 de la instrucción que representa? Ejercicio 12 Dados: a. 128 registros b. 4 veces más instrucciones i) Si el set de instrucciones del procesador MIPS fuera modificado, el formato de instrucción también debería ser modificado. Para cada cambio sugerido arriba, mostrar el tamaño de los campos bits de una instrucción de formato R-type. Qué cantidad de bits se necesita para cada instrucción? ii) Si el set de instrucciones del procesador MIPS fuera modificado, el formato de instrucción también debería ser modificado. Para cada cambio sugerido arriba, mostrar el tamaño de los campos bits de una instrucción de formato I-type. Qué cantidad de bits se necesita para cada instrucción? iii) Qué instrucción MIPS representa? iv) Por qué, el cambio sugerido en la tabla anterior, podría disminuir el tamaño de un programa en assembler MIPS? Dados: a (16) b. AD (16) i) Qué número representa en base 10? ii) Qué instrucción MIPS representa? iii) Qué tipo de instrucción representa (I-type, R-type, J-type)? Cuáles son los valores de los campos op y rt? Ejercicio 13 Dados: a. $t0 = 0xAAAAAAAA, $t1 = 0x b. $t0 = 0xF00DD00D, $t1 = 0x
8 i) Cuál es el valor de $t2 luego de ejecutar las siguientes instrucciones? sll $t2, $t0, 44 or $t2, $t2, $t1 ii) Cuál es el valor de $t2 luego de ejecutar las siguientes instrucciones? sll $t2, $t0, 4 andi $t2, $t2, -1 iii) Cuál es el valor de $t2 luego de ejecutar las siguientes instrucciones? srl $t2, $t0, 3 andi $t2, $t2, 0xFFEF Dados: a. sll $t2, $t0, 1 andi $t2, $t2, -1 b. andi $t2, $t1, 0x00F0 srl $t2, 2 i) Asumiendo que $t0 = 0x0000A5A5 y $t1 = 00005A5A Cuál es el valor de $t2 luego de ejecutar las instrucciones de la tabla? ii) Asumiendo que $t0 = 0xA5A50000 y $t1 = A5A50000 Cuál es el valor de $t2 luego de ejecutar las instrucciones de la tabla? iii) Asumiendo que $t0 = 0xA5A5FFFF y $t1 = A5A5FFFF Cuál es el valor de $t2 luego de ejecutar las instrucciones de la tabla? Ejercicio 14 Sólo a efectos de mantener la numeración sincronizada con el libro. Ejercicio 15 Dadas: a. not $t1, $t2 // invierte bit a bit b. orn $t1, $t2, $t3 // OR bit a bit de $t2, $t3 i) Las instrucciones incluidas en la tabla no se encuentran incluidas en el set de instrucciones de assembler MIPS, pero en la misma tabla se adjunta una mínima descripción de lo que realizan. Dados los valores de $t2 = 0x00FFA5A5 y $t3 = 0xFFFF003C, Cuál es valor de $t1 luego de ejecutar la instrucción? ii) La instrucciones incluidas en la tabla no se encuentran incluidas en el set de instrucciones de assembler MIPS, las mismas pueden ser recreadas utilizando una o más instrucciones de assembler MIPS. Mostrar un conjunto mínimo de instrucciones MIPS que puedan recrear las instrucciones de la tabla. iii) Para la secuencia de instrucciones del punto anterior, mostrar la representación a nivel bit de cada instrucción. 8
9 Dadas: a. A = B!A; b. A = C[0] << 4; i) La tabla muestra diferentes sentencias en C que utilizan operadores lógicos. Si la posición de memoria C[0] contiene el valor entero 0x , y los valores iniciales de los enteros A y B son 0x y 0x , Cuál es el valor resultante de A? ii) Para las sentencias en C de la tabla, escribir una secuencia mínima de instrucciones de assembler MIPS que realicen las mismas operaciones. Asumir que $t1 = A, $t2 = B, y $s1 es la dirección inicial de C. iii) Para la secuencia de instrucciones del punto anterior, mostrar la representación de cada una a nivel de bits. Ejercicio 16 Dados: a. $t0 = (2) b. $t0 = (2) i) Si $t1 = (2) Cuál es valor de $t2 luego de la ejecución de las siguientes instrucciones? slt $t2, $t0, $t1 beq $t2, $0, ELSE j DONE: ELSE: addi $t2, $0, 2 DONE: ii) Dada la instrucción slti que se muestra a continuación, Para qué valores de X, si es que existe alguno, $t2 será igual a 1? slti $t2, $t0, X iii) Suponga que el program counter (PC) = 0x Es posible usar la instrucción jump (j) de assembler MIPS para asignarle al PC la dirección de la tabla? Es posible utilizar el branch-on-equal (beq) de la instrucción assembler MIPS para asignarle al PC la dirección de la tabla? Dados: a. $t0=0x b. $t0=0x i) Cuál es valor de $t2 luego de la ejecución de las siguientes instrucciones? slt $t2, $0, $t0 beq $t2, $0, ELSE j DONE: ELSE: addi $t2, $t2, 2 DONE: 9
10 ii) Cuál es valor de $t2 luego de la ejecución de las siguientes instrucciones? sll $t0, $t0, 2 slt $t2, $t0, $0 iii) Suponga que el program counter (PC) = 0x Es posible usar la instrucción jump (j) de assembler MIPS para asignarle al PC la dirección de la tabla? Es posible utilizar el branch-on-equal (beq) de la instrucción assembler MIPS para asignarle al PC la dirección de la tabla? Prestar atención al formato de las instrucciones J-type. Ejercicio 17 Dadas: a. subi $t2, $t3, 5 # R[rt] = R[rs] - SignExtImm b. rpt $t2, loop # if(r[rs]>0) R[rs]=R[rs]-1, PC=PC+4+BranchAddr i) La tabla contiene instrucciones que no se encuentran incluidas en el set de instrucciones de assembler MIPS y una descripción de su funcionamiento. Por qué estas instrucciones no han sido incluidas en el set de instrucciones MIPS? ii) Si estas instrucciones tuvieran que ser implementadas dentro del set de instrucciones MIPS, Cuál sería el formato de instrucción más apropiado? iii) Escribir la secuencia más corta de instrucciones MIPS que ejecuten la instrucción. Dados: a. LOOP: addi $s2, $s2, 2 subi $t1, $t1, 1 bne $t1, $0, LOOP DONE: b. LOOP: slt $t2, $0, $t1 beq $t2, $0, DONE subi $t1, $t1, 1 addi $s2, $s2, 2 DONE: i) Cuál es el valor de $s2, asumiendo que inicialmente $s2=0 y $t1=10? ii) Escribir una rutina equivalente en C. Asumir que los registros $s1, $s2, $t1, y $t2 son representados por los enteros A, B, i y temp, respectivamente. iii) Asumiendo que incialmente $t1=n, Cuántas instrucciones MIPS son ejecutadas? Ejercicio 18 Dados: a. for(i=0; i<a; i++) a+= b; b. for(i=0; i<a; i++) for(j=0; j<b; j++) D[4*j] = i + j; i) Dibujar un diagrama de flujo del código C ii) Trasladar el código C a assembler MIPS. Usar la mínima cantidad de instrucciones posibles. Asumir que los valores de a, b, i y j se encuentran almacenados en los registros $s0, $s1, $t0 y $t1, respectivamente. Además, asumir que el registro $s2 contiene la posición inicial del vector D 10
11 iii) Cuántas instrucciones MIPS toma implementar el código C? Si las variables a y b son inicializadas en 10 y 1 respectivamente y todos los elementos de D son inicializados en 0, Cuántas instrucciones MIPS son ejecutadas al finalizar el ciclo? Dados: a. addi $t1, $0, 50 LOOP: lw $s1, 0($s1) add $s1, $s2, $s1 lw $s1, 4($s0) add $s1, $s2, $s1 addi $s0, $s0, 8 subi $t1, $t1, 1 bne $t1, $0, LOOP b. addi $t1, $0, $0 LOOP: lw $s1, 0($s0) add $s2, $s2, $s1 addi $s0, $s0, 4 addi $t1, $t1, 1 slti $t2, $t1, 100 bne $t2, $s0, LOOP i) Cuántas instrucciones MIPS se ejecutan? ii) Escribir una rutina equivalente en C. Asumir que los registros $t1, $s2 y $s0 son representados por los enteros i, result y la dirección inicial del vector MemArray, respectivamente. iii) Rescribir el ciclo para reducir la cantidad de instrucciones MIPS ejecutadas. Ejercicio 19 Dados: a. int fib(int n){ if (n==0) return 0; else if (n==1) return 1; else fib(n-1) + fib(n-2); } b. int positive(int a, int b){ if (addit(a, b) >0) return 1; else return 0; } int addit(int a, int b){ return a+b; } 11
12 Conservado Registros guardados: $s0-$s7 Registro stack pointer: $sp Registro de dirección de retorno: $ra Stack por encima de stack pointer No conservado Registros temporales: $t0-$t9 Registros de argumentos: $a0-$a3 Registros con valores de retorno: $v0-$v1 Stack por debajo de stack pointer Cuadro 1: Que debe ser conservado y que no, en un llamado a procedimiento. Si el software se basa en los registros frame pointer o global pointer, también deben ser conservados. (Tabla obtenida de la Figura 2.11 del libro) Nombre Número de registro Uso Conservado en la llamada? $zero 0 Valor constante cero n.a. $v0-$v1 2-3 Valores para resultados y no evaluación de expresiones $a0-$a3 4-7 Argumentos no $t0-$t Temporales no $s0-$s Guardados si $t8-$t Más temporales no $gp 28 Global Pointer si $sp 29 Stack Pointer si $fp 30 Frame Pointer si $ra 31 Dirección de retorno si Cuadro 2: Convención de uso de registros MIPS. El registro 1, llamado $at, es reservado para el ensamblador, y los registros 26-27, denominados $k0-$k1, son reservados para el sistema operativo. (Tabla obtenida de la Figura 2.14 del libro) i) Implementar el código C en assembler MIPS. Cuántas instrucciones MIPS son necesarias para ejecutar la función? ii) La funciones generalmente pueden ser implementadas por los compiladores in-line. Una función in-line es cuando el cuerpo de la función es copiado dentro del espacio de programa, eliminando la sobrecarga por la llamada a la función. Implementar en assembler MIPS una versión in-line del código C. Cuál es la reducción en cantidad de instrucciones MIPS necesarias para ejecutar la función? Asumir que la variable n se inicializa en 5. iii) Para cada llamada a función, mostrar el contenido del stack luego de que la llamada sea hecha. Asumir que el stack pointer se encuentra originalmente en la dirección 0x7FFFFFFC y sigue la convensión de registros especificada en el Cuadro 1. La función f llama a otra función: func, cuyo código C (de la función func) ya ha sido compilada en otro módulo usando la convención de llamadas de MIPS del Cuadro 2. La declaración de la función func es int func(int a, int b); El código de la función f se detalla a continuación: a. int f(int a, int b, int c, int d){ return func(func(a,b),c+d); } b. int f(int a, int b, int c, int d){ if(a+b>c+d) return func(a+b,c+d); return func(c+d,a+b); } 12
13 i) Trasladar la función f a assembler MIPS, usando la convención de llamadas MIPS del Cuadro 2. Si necesita utilizar los registros $t0 a $t7, utilizar primero los de menor numeración. ii) Puede utilizarse la optimización tail-call en esta función? Si la respuesta es no, justificar. Si la respuesta es sí, Cuál es la diferencia, en cantidad de instrucciones ejecutadas en f, con y sin la optimización? iii) Justo antes de que la función f del punto previo retorne, Cuál es el contenido de los registros $t5, $s3, $ra y $sp?. Tener en mente que se conoce lo que hace la función f, pero de la función func sólo se conoce su declaración. Ejercicio 20 Sean: a. FACT: sw $ra, 4($sp) sw $a0, 0($sp) addi $sp, $sp, -8 slti $t0, $a0, 1 beq $t0, $0, L1 addi $v0, $0, 1 addi $sp, $sp, 8 jr $ra L1: addi $a0, $a0, -1 jal FACT addi $sp, $sp, 8 lw $a0, 0($sp) lw $ra, 4($sp) mul $v0, $a0, $v0 jr $ra b. FACT: addi $sp, $sp, 8 sw $ra, 4($sp) sw $a0, 0($sp) add $s0, $0, $a0 slti $t0, $a0, 2 beq $t0, $0, L1 mul $v0, $s0, $v0 addi $sp, $sp, -8 jr $ra L1: addi $a0, $a0, -1 jal FACT addi $v0, $0, 1 lw $a0, 0($sp) lw $ra, 4($sp) addi $sp, $sp, -8 jr $ra i) Los programas (en assembler MIPS) de la tabla computan el factorial de un número dado. Dicho número es ingresado a través del registro $a0, y el resultado es devuelto a través del registro $v0. En ambos códigos hay errores. Corregirlos. ii) Asumir que para ambos programas recursivos, el valor de entrada es 4. Rescribir dichos programas para que funcionen de manera no recursiva. Restringir el uso de registros sólo a $s0-$s7. Cuántas instrucciones se ejecutan en la versión recursiva? Y en la no recursiva? iii) Mostrar el contenido del stack después de cada llamada a función, asumiendo que el valor de entrada es 4. 13
14 Sean: a. FIB: addi $sp, $sp, -12 sw $ra, 0($sp) sw $s1, 4($sp) sw $a0, 8($sp) slti $t0, $a0, 1 beq $t0, $0, L1 addi $v0, $a0, $0 j EXIT L1: addi $a0, $a0, -1 jal FIB addi $s1, $v0, $0 addi $a0, $a0, -1 jal FIB add $v0, $v0, $s1 EXIT: lw $ra, 0($sp) lw $a0, 8($sp) lw $s1, 4($sp) addi $sp, $sp, 12 jr $ra b. FIB: addi $sp, $sp, -12 sw $ra, 8($sp) sw $s1, 4($sp) sw $a0, 0($sp) slti $t0, $a0, 3 beq $t0, $0, L1 addi $v0, $0, 1 j EXIT L1: addi $a0, $a0, -1 jal FIB addi $a0, $a0, -2 jal FIB add $v0, $v0, $s1 EXIT: lw $a0, 0($sp) lw $s1, 4($sp) lw $ra, 8($sp) addi $sp, $sp, 12 jr $ra i) Los programas (en assembler MIPS) de la tabla computan Fibonacci de un número dado. Dicho número es ingresado a través del registro $a0, y el resultado es devuelto a través del registro $v0. En ambos códigos hay errores. Corregirlos. ii) Asumir que para ambos programas recursivos, el valor de entrada es 4. Rescribir dichos programas para que funcionen de manera no recursiva. Restringir el uso de registros sólo a $s0-$s7. Cuántas instrucciones se ejecutan en la versión recursiva? Y en la no recursiva? iii) Mostrar el contenido del stack después de cada llamada a función, asumiendo que el valor de entrada es 4. Ejercicio 21 Asumiendo que el stack y el segmento estático de datos se encuentran vacíos, y el stack y el global pointer comienzan en la dirección 0x7FFF FFFc y 0x , respectivamente. Además, asumiendo la convención de llamadas del Cuadro 1 del ejercicio 14
15 19 y que los parámetros de entrada a función son pasados a través de los registros $a0-$a3, y que el resultado se devuelve a través de $r0 y que las funciones leaf function pueden utilizar solamente registros guardados; dados: a. int my global = 100; main(){ int x = 10; int y = 20; int z; z = my function(x,y); } int my function(int x, int y){ return x - y + my global; } b. int my global = 100; main(){ int z; my global+=1; int z; z = leaf function(my global); } int leaf function(int x){ return x - 1; } i) Transcribir los programas a assembler MIPS. ii) Mostrar el contenido del stack y del segmento estático de datos después de cada llamada a función. iii) Si la función leaf function pudiera usar los registros temporales ($t0, $t1, etc.), escribir el código MIPS para cada programa. Dados los siguientes programas escritos en assembler MIPS que siguen la convención del Cuadro 2 del ejercicio 19: a. f: add $v0, $a1, $a0 bnez $a2, L sub $v0, $a0, $a1 L: jr $v0 b. f: add $a2, $a3, $a2 slt $a2, $a2, $a0 move $v0, $a1 beqz $a2, L jr $ra L: move $a0, $a1 jal g ; Tail call i) El código contiene un error y viola la convención de llamada de MIPS. Cuál es el error y cómo puede solucionarse? ii) Cuál es el código equivalente en C de este programa? Asumir que los argumento de la función en C son denominados a, b, c, etc. iii) Mostrar el contenido del stack después de cada llamada a función, asumiendo que el valor de entrada es 4. En el punto que esta función es llamada, los registros $a0, $a1, $a2 y $a3 contienen los valores 1, 100, 1000 y 30, respectivamente. Qué valor retorna la función? Si otra función g es llamada desde f, asumir que g siempre devuelve
16 Ejercicio 22 Dadas las siguientes cadenas de caracteres: a. hello world b i) Transcribirlos a los valores en bytes hexadecimales ASCII. ii) Transcribirlos a Unicode de 16-bits (usando la notación hex y el Basic Latin character set). Dados los siguientes valores de caracteres ASCII hexadecimales: a b. 4D i) trasladarlos a texto. Ejercicio 23 Sean: a. cadena de enteros decimales positivos y negativos b. enteros hexadecimales positivos i) Escribir un programa en lenguaje ensamblador MIPS que convierta una cadena de números ASCII a un entero, bajo las condiciones que figuran en la tabla. El registro $a0 contiene la dirección de la cadena de dígitos que contiene alguna combinación de 0 y 9 y que finaliza con un terminador null. El programa debe calcular el valor entero equivalente a la cadena y almacenarlo en el registro $v0. Si en la cadena aparece un caracter que no se corresponde con un dígito decimal, el programa debe terminar su ejecución almacenando en el registro $v0 el valor -1. A modo de ejemplo, si el registro $a0 apunta a la secuencia de tres bytes 50 (10), 52 (10) y 0 (10) (que corresponde a la cadena 24 con terminador null), al terminar el programa debería retornar el valor 24 (10) en el registro $v0. Ejercicio 24 Asumiendo que los registros $t1 y $t2 contienen la direcciones 0x y 0x , respectivamente, y que la arquitectura MIPS utiliza el modo de direccionamiento big-endian. Sean: a. lbu $t0, 0($t1) sw $t0, 0($t2) b. lb $t0, 0($t1) sh $t0, 0($t2) i) Asumiendo que el dato en la dirección de memoria 0x es: Qué valor es almacenado en la dirección apuntada por el registro $t2? Asumir que la dirección de memoria apuntada a $t2 es inicializada en 0xFFFF FFFF ii) Asumiendo que el dato en la dirección de memoria 0x es: Qué valor es almacenado en la dirección apuntada por el registro $t2? Asumir que la dirección de memoria apuntada a $t2 es inicializada en 0x
17 iii) Asumiendo que el dato en la dirección de memoria 0x es: FF Qué valor es almacenado en la dirección apuntada por el registro $t2? Asumir que la dirección de memoria apuntada a $t2 es inicializada en 0x Ejercicio 25 Dados: a (2) a (2) i) Escribir un programa en assembler MIPS que cree las constantes de 32-bits de la tabla y que almacene dicho valor en el registro $t1. ii) Si el valor actual del PC=0x , Es posible utilizar una sola instrucción jump para obtener un PC con el valor de la tabla? iii) Si el valor actual del PC=0x , Es posible utilizar una sola instrucción branch para obtener un PC con el valor de la tabla? iv) Si el valor actual del PC=0x1FFFF000, Es posible utilizar una sola instrucción branch para obtener un PC con el valor de la tabla? v) Si el campo inmediato de una instrucción MIPS fuera de solo 8-bits de ancho, escribir un código MIPS que cree las constantes de 32-bits de la tabla y almacene sus valores en el registro $t1. No está permitido utilizar la instrucción lui. Dados: a. lui $t0, 0x1234 addi $t0, $t0, 0x5678 b. lui $t0, 0x1234 andi $t0, $t0, 0x5678 i) Cuál es el valor del registro $t0 luego de ejecutar el código de la tabla? ii) Escribir un código C equivalente al código assembler de la tabla. Asumir que la constante más grande que se puede cargar en un entero de 32-bits son 16-bits. Ejercicio 26 Dados: a (16) a. FFFF FF00 (16) i) Si el PC=0x , Cuántas instrucciones branch (no jump) son necesarias para alcanzar la dirección de la tabla? ii) Si el PC=0x , Cuántas instrucciones jump (no branch, ni jump a registro) son necesarias para alcanzar la dirección de la tabla? iii) Para reducir el tamaño de un programa MIPS, los diseñadores de MIPS han decidido recortar el campo inmediato de las instrucciones de tipo I-type de 16-bits a 8-bits. Si el PC=0x , Cuántas instrucciones branch son necesarias para setear al PC la dirección de la tabla? Dados: a. 128 registros b. 4 veces más operaciones diferentes 17
18 i) Si el set de instrucciones del procesador MIPS es modificado, el formato de instrucción también deberá ser modificado. Para cada cambio sugerido en la tabla, Cuál es el impacto sobre el rango de direcciones para una instrucción beq? Asumir que todas las instrucciones se mantienen en un largo de 32-bits y cada cambio realizado al formato de instrucción de las instrucciones de tipo I-type sólo incrementa/decrementa el campo inmediato de la instrucción beq. ii) Si el set de instrucciones del procesador MIPS es modificado, el formato de instrucción también deberá ser modificado. Para cada cambio sugerido en la tabla, Cuál es el impacto sobre el rango de direcciones para una instrucción jump? Asumir que todas las instrucciones se mantienen en un largo de 32-bits y cada cambio realizado al formato de instrucción de las instrucciones de tipo J-type sólo impacta en el campo de dirección de la instrucción jump. iii) Si el set de instrucciones del procesador MIPS es modificado, el formato de instrucción también deberá ser modificado. Para cada cambio sugerido en la tabla, Cuál es el impacto sobre el rango de direcciones para una instrucción jump de registro? Asumir que todas las instrucciones se mantienen en un largo de 32-bits. Ejercicio 27 Sean: a. Direccionamiento base o desplazamiento a. Direccionamiento pseudo-directo i) Dado los modos de direccionamiento de MIPS, que se encuentran en la tabla anterior, dar un ejemplo de una instrucción MIPS que muestre dicho modo de direccionamiento. ii) Para la instrucción del punto anterior, Cuál es el tipo de instrucción utilizada (I-type, etc.)? iii) Listar las ventajas y desventajas de cada modo de direccionamiento. Escribir un código MIPS que muestre dichas ventajas y desventajas. Sean: a. 0x beq $s0, $0, FAR... 0x FAR: addi $s0, $s0, 1 b. 0x j AWAY... 0x AWAY: addi $s0, $s0, 1 i) Para las sentencias MIPS de la tabla, mostrar su repesentación a nivel bit en hexadecimal de cada una. ii) Al reducir el tamaño del campo inmediato de las instrucciones de tipo I-type y J-type, se pueden ahorrar los bits necesarios para representar este tipo de instrucciones. Si el campo inmediato de las instrucciones I-type fuera de 8-bits y el de las J-type fuera de 18-bits, rescribir el código MIPS de la tabla para que refleje dicho cambio. No está permitido utilizar la instrucción lui. iii) Cuántas instrucciones de más se necesitan para ejecutar el código del punto anterior, comparado con el de la tabla? 18
19 MIPS Reference Data Card ( Green Card ) 1. Pull along perforation to separate card 2. Fold bottom side (columns 3 and 4) together M I P S Reference Data CORE INSTRUCTION SET OPCODE FOR- / FUNCT NAME, MNEMONIC MAT OPERATION (in Verilog) (Hex) Add add R R[rd] = R[rs] + R[rt] (1) 0 / 20 hex Add Immediate addi I R[rt] = R[rs] + SignExtImm (1,2) 8 hex Add Imm. Unsigned addiu I R[rt] = R[rs] + SignExtImm (2) 9 hex Add Unsigned addu R R[rd] = R[rs] + R[rt] 0 / 21 hex And and R R[rd] = R[rs] & R[rt] 0 / 24 hex And Immediate andi I R[rt] = R[rs] & ZeroExtImm (3) c hex Branch On Equal beq I if(r[rs]==r[rt]) PC=PC+4+BranchAddr (4) 4 hex Branch On Not Equal bne I if(r[rs]!=r[rt]) PC=PC+4+BranchAddr (4) 5 hex Jump j J PC=JumpAddr (5) 2 hex Jump And Link jal J R[31]=PC+8;PC=JumpAddr (5) 3 hex Jump Register jr R PC=R[rs] 0 / 08 hex Load Byte Unsigned lbu I R[rt]={24 b0,m[r[rs] +SignExtImm](7:0)} (2) 24 hex Load Halfword R[rt]={16 b0,m[r[rs] lhu I Unsigned +SignExtImm](15:0)} (2) 25 hex Load Linked ll I R[rt] = M[R[rs]+SignExtImm] (2,7) 30 hex Load Upper Imm. lui I R[rt] = {imm, 16 b0} f hex Load Word lw I R[rt] = M[R[rs]+SignExtImm] (2) 23 hex Nor nor R R[rd] = ~ (R[rs] R[rt]) 0 / 27 hex Or or R R[rd] = R[rs] R[rt] 0 / 25 hex Or Immediate ori I R[rt] = R[rs] ZeroExtImm (3) d hex Set Less Than slt R R[rd] = (R[rs] < R[rt])? 1 : 0 0 / 2a hex Set Less Than Imm. slti I R[rt] = (R[rs] < SignExtImm)? 1 : 0 (2) a hex Set Less Than Imm. Unsigned sltiu I R[rt] = (R[rs] < SignExtImm)? 1 : 0 (2,6) Set Less Than Unsig. sltu R R[rd] = (R[rs] < R[rt])? 1 : 0 (6) 0 / 2b hex Shift Left Logical sll R R[rd] = R[rt] << shamt 0 / 00 hex Shift Right Logical srl R R[rd] = R[rt] >> shamt 0 / 02 hex Store Byte sb I M[R[rs]+SignExtImm](7:0) = R[rt](7:0) (2) 28 hex Store Conditional sc I M[R[rs]+SignExtImm] = R[rt]; R[rt] = (atomic)? 1 : 0 (2,7) 38 hex Store Halfword sh I M[R[rs]+SignExtImm](15:0) = R[rt](15:0) (2) 29 hex Store Word sw I M[R[rs]+SignExtImm] = R[rt] (2) 2b hex Subtract sub R R[rd] = R[rs] - R[rt] (1) 0 / 22 hex Subtract Unsigned subu R R[rd] = R[rs] - R[rt] 0 / 23 hex (1) May cause overflow exception (2) SignExtImm = { 16{immediate[15]}, immediate } (3) ZeroExtImm = { 16{1b 0}, immediate } (4) BranchAddr = { 14{immediate[15]}, immediate, 2 b0 } (5) JumpAddr = { PC+4[31:28], address, 2 b0 } (6) Operands considered unsigned numbers (vs. 2 s comp.) (7) Atomic test&set pair; R[rt] = 1 if pair atomic, 0 if not atomic BASIC INSTRUCTION FORMATS R opcode rs rt rd shamt funct I opcode rs rt immediate J opcode address b hex ARITHMETIC CORE INSTRUCTION SET 2 OPCODE / FMT /FT / FUNCT (Hex) NAME, MNEMONIC FOR- MAT OPERATION Branch On FP True bc1t FI if(fpcond)pc=pc+4+branchaddr (4) 11/8/1/-- Branch On FP False bc1f FI if(!fpcond)pc=pc+4+branchaddr(4) 11/8/0/-- Divide div R Lo=R[rs]/R[rt]; Hi=R[rs]%R[rt] 0/--/--/1a Divide Unsigned divu R Lo=R[rs]/R[rt]; Hi=R[rs]%R[rt] (6) 0/--/--/1b FP Add Single add.s FR F[fd ]= F[fs] + F[ft] 11/10/--/0 FP Add {F[fd],F[fd+1]} = {F[fs],F[fs+1]} + add.d FR Double {F[ft],F[ft+1]} 11/11/--/0 FP Compare Single c.x.s* FR FPcond = (F[fs] op F[ft])? 1 : 0 11/10/--/y FP Compare FPcond = ({F[fs],F[fs+1]} op c.x.d* FR Double {F[ft],F[ft+1]})? 1 : 0 11/11/--/y * (x is eq, lt, or le) (op is ==, <, or <=) ( y is 32, 3c, or 3e) FP Divide Single div.s FR F[fd] = F[fs] / F[ft] 11/10/--/3 FP Divide {F[fd],F[fd+1]} = {F[fs],F[fs+1]} / div.d FR Double {F[ft],F[ft+1]} 11/11/--/3 FP Multiply Single mul.s FR F[fd] = F[fs] * F[ft] 11/10/--/2 FP Multiply {F[fd],F[fd+1]} = {F[fs],F[fs+1]} * mul.d FR Double {F[ft],F[ft+1]} 11/11/--/2 FP Subtract Single sub.s FR F[fd]=F[fs] - F[ft] 11/10/--/1 FP Subtract {F[fd],F[fd+1]} = {F[fs],F[fs+1]} - sub.d FR Double {F[ft],F[ft+1]} 11/11/--/1 Load FP Single lwc1 I F[rt]=M[R[rs]+SignExtImm] (2) 31/--/--/-- Load FP F[rt]=M[R[rs]+SignExtImm]; (2) ldc1 I Double F[rt+1]=M[R[rs]+SignExtImm+4] 35/--/--/-- Move From Hi mfhi R R[rd] = Hi 0 /--/--/10 Move From Lo mflo R R[rd] = Lo 0 /--/--/12 Move From Control mfc0 R R[rd] = CR[rs] 10 /0/--/0 Multiply mult R {Hi,Lo} = R[rs] * R[rt] 0/--/--/18 Multiply Unsigned multu R {Hi,Lo} = R[rs] * R[rt] (6) 0/--/--/19 Shift Right Arith. sra R R[rd] = R[rt] >>> shamt 0/--/--/3 Store FP Single swc1 I M[R[rs]+SignExtImm] = F[rt] (2) 39/--/--/-- Store FP M[R[rs]+SignExtImm] = F[rt]; (2) sdc1 I 3d/--/--/-- Double M[R[rs]+SignExtImm+4] = F[rt+1] FLOATING-POINT INSTRUCTION FORMATS FR opcode fmt ft fs fd funct FI opcode fmt ft immediate PSEUDOINSTRUCTION SET NAME MNEMONIC OPERATION Branch Less Than blt if(r[rs]<r[rt]) PC = Label Branch Greater Than bgt if(r[rs]>r[rt]) PC = Label Branch Less Than or Equal ble if(r[rs]<=r[rt]) PC = Label Branch Greater Than or Equal bge if(r[rs]>=r[rt]) PC = Label Load Immediate li R[rd] = immediate Move move R[rd] = R[rs] Copyright 2009 by Elsevier, Inc., All rights reserved. From Patterson and Hennessy, Computer Organization and Design, 4th ed. REGISTER NAME, NUMBER, USE, CALL CONVENTION NAME NUMBER USE PRESERVED ACROSS A CALL? $zero 0 The Constant Value 0 N.A. $at 1 Assembler Temporary No $v0-$v1 2-3 Values for Function Results and Expression Evaluation No $a0-$a3 4-7 Arguments No $t0-$t Temporaries No $s0-$s Saved Temporaries Yes $t8-$t Temporaries No $k0-$k Reserved for OS Kernel No $gp 28 Global Pointer Yes $sp 29 Stack Pointer Yes $fp 30 Frame Pointer Yes $ra 31 Return Address Yes
20 OPCODES, BASE CONVERSION, ASCII SYMBOLS MIPS (1) MIPS (2) MIPS opcode funct funct Binary Decimal Hexa- ASCII deci- mal Character (31:26) (5:0) (5:0) Hexa- Decimadecimal (1) sll add.f NUL 64 sub.f SOH A j srl mul.f STX B jal sra div.f ETX C beq sllv sqrt.f EOT D bne abs.f ENQ E blez srlv mov.f ACK F bgtz srav neg.f BEL G addi jr BS H addiu jalr HT I slti movz a LF 74 4a J sltiu movn b VT 75 4b K andi syscall round.w.f c FF 76 4c L ori break trunc.w.f d CR 77 4d M xori ceil.w.f e SO 78 4e N lui sync floor.w.f f SI 79 4f O mfhi DLE P (2) mthi DC Q mflo movz.f DC R mtlo movn.f DC S DC T NAK U SYN V ETB W mult CAN X multu EM Y div a SUB 90 5a Z divu b ESC 91 5b [ c FS 92 5c \ d GS 93 5d ] e RS 94 5e ^ f US 95 5f _ lb add cvt.s.f Space lh addu cvt.d.f ! a lwl sub " b lw subu # c lbu and cvt.w.f $ d lhu or % e lwr xor & f nor g sb ( h sh ) i swl slt a * 106 6a j sw sltu b b k c, 108 6c l d d m swr e e n cache f / 111 6f o ll tge c.f.f p lwc1 tgeu c.un.f q lwc2 tlt c.eq.f r pref tltu c.ueq.f s teq c.olt.f t ldc1 c.ult.f u ldc2 tne c.ole.f v c.ule.f w sc c.sf.f x swc1 c.ngle.f y swc2 c.seq.f a : 122 7a z c.ngl.f b ; 123 7b { c.lt.f c < 124 7c sdc1 c.nge.f d = 125 7d } sdc2 c.le.f e > 126 7e ~ c.ngt.f f? 127 7f DEL (1) opcode(31:26) == 0 (2) opcode(31:26) == 17 ten (11 hex ); if fmt(25:21)==16 ten (10 hex ) f = s (single); if fmt(25:21)==17 ten (11 hex ) f = d (double) 3 IEEE 754 FLOATING-POINT STANDARD (-1) S (1 + Fraction) 2 (Exponent - Bias) where Single Precision Bias = 127, Double Precision Bias = IEEE Single Precision and MAX 0 NaN Double Precision Formats: S.P. MAX = 255, D.P. MAX = 2047 S Exponent Fraction MEMORY ALLOCATION Stack $sp 7fff fffc hex $gp pc S Exponent Fraction hex hex hex 0 hex Dynamic Data Static Data Text Reserved... Argument 6 Argument 5 Saved Registers Local Variables DATA ALIGNMENT Double Word Word Word Halfword Halfword Halfword Halfword Byte Byte Byte Byte Byte Byte Byte Byte Value of three least significant bits of byte address (Big Endian) EXCEPTION CONTROL REGISTERS: CAUSE AND STATUS B Interrupt Exception D Mask Code Copyright 2009 by Elsevier, Inc., All rights reserved. From Patterson and Hennessy, Computer Organization and Design, 4th ed Pending Interrupt 4 IEEE 754 Symbols Exponent Fraction Object 0 0 ± ± Denorm 1 to MAX - 1 anything ± Fl. Pt. Num. MAX 0 ± STACK FRAME BD = Branch Delay, UM = User Mode, EL = Exception Level, IE =Interrupt Enable EXCEPTION CODES Number Name Cause of Exception Number Name Cause of Exception 0 Int Interrupt (hardware) 9 Bp Breakpoint Exception Address Error Exception Reserved Instruction 4 AdEL 10 RI (load or instruction fetch) Exception Address Error Exception Coprocessor 5 AdES 11 CpU (store) Unimplemented Bus Error on Arithmetic Overflow 6 IBE 12 Ov Instruction Fetch Exception Bus Error on 7 DBE 13 Tr Trap Load or Store 8 Sys Syscall Exception 15 FPE Floating Point Exception U M E L Higher Memory Addresses Stack Grows Lower Memory Addresses ASCII Character SIZE PREFIXES (10 x for Disk, Communication; 2 x for Memory) PRE- PRE- PRE- PRE- SIZE FIX SIZE FIX SIZE FIX SIZE FIX 10 3, 2 10 Kilo , 2 50 Peta milli femto- 10 6, 2 20 Mega , 2 60 Exa micro atto- 10 9, 2 30 Giga , 2 70 Zetta nano zepto , 2 40 Tera , 2 80 Yotta pico yocto- The symbol for each prefix is just its first letter, except µ is used for micro. $fp $sp I E MIPS Reference Data Card ( Green Card ) 1. Pull along perforation to separate card 2. Fold bottom side (columns 3 and 4) together
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
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
REPERTORIO DE INSTRUCCIONES MIPS
Departamento de Informática Escuela Politécnica Universidad de Extremadura REPERTORIO DE INSTRUCCIONES MIPS Prácticas de la Asignatura ESTRUCTURA DE COMPUTADORES 2º Ingeniería Informática 2º Ingeniería
8. Diseño de la codificación binaria del repertorio de Instrucciones.
8. Diseño de la codificación binaria del repertorio de Instrucciones. Se desea elegir los códigos binarios de las instrucciones. Esta parte, en forma indirecta especifica lo que debe realizar un programa
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
MIPS: Modelo de programación. (I Parte)
MIPS: Modelo de programación (I Parte) MIPS: Microprocessor without Interlocked Pipeline Stages Trabajaremos como MIPS Son similares a las desarrolladas en los años 80 Cerca de 100 millones de procesadores
El lenguaje ensamblador depende directamente de la arquitectura del computador. Por tanto cada arquitectura tiene su propio lenguaje ensamblador.
Estructura y Tecnología de Computadores (ITIG) Ángel Serrano Sánchez de León Luis Rincón Córcoles Programa 1. Introducción. 2. Registros. 3. Operaciones aritméticas básicas. 4. Accesos a memoria. Carga
COMPUTADORES SEGMENTADOS (DLX)
DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica
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
Tema 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: - Los
ARQUITECTURA DE COMPUTADORES. Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento.
Universidad Rey Juan Carlos ARQUITECTURA DE COMPUTADORES Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento. Licesio J. Rodríguez-Aragón Programa 1. Introducción Lenguajes de Programación:
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
Registros del MIPS y usos. Servicios del sistema
Registros del MIPS y usos Nombre del registro Número Uso zero 0 Constante de valor 0 at 1 Reservada para ensamblador v0 2 Evaluación de expresiones y resultado de funciones v1 3 Evaluación de expresiones
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
Implementación de instrucciones para el procesador MIPS de ciclo único.
Implementación de instrucciones para el procesador MIPS de ciclo único. 1. Introducción. El MIPS (Microprocessor without Interlock Pipeline Stages) es un conocido tipo de procesador de arquitectura RISC
Fundamentos de Informática 1er curso de ingeniería Industrial. Tema 2. Datos. Tema 2. Datos
Fundamentos de Informática 1er curso de ingeniería Industrial Tema 2. Datos 1 Tema 2. Datos 2.1 Codificación binaria 2.2 Tipos de datos 2.3 Operaciones básicas 2.4 Expresiones 2.5 Almacenamiento 2 1 2.1
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
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
TEMA 2 REPRESENTACIÓN BINARIA
TEMA 2 REPRESENTACIÓN BINARIA ÍNDICE. INTRODUCCIÓN HISTÓRICA A LA REPRESENTACIÓN NUMÉRICA 2. REPRESENTACIÓN POSICIONAL DE MAGNITUDES 2. Transformaciones entre sistemas de representación (cambio de base)
ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES
Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa 1. Introducción a la arquitectura MIPS. 2. Características principales de
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
Arquitectura de Computadores. Adecuación al diseño de unidades segmentadas (pipelining).
La arquitectura. Introducción. En este capítulo describiremos la estructura básica de una arquitectura sencilla de carga/almacenamiento denominada (Pronunciado DeLuxe ). La arquitectura del conjunto de
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
Sesión 11 Implementación de sentencias condicionales
INGENIERÍATÉCNICA EN INFORMÁTICA DE GESTIÓN. CURSO 2001-2002 LABORATORIO DE ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES Sesión 11 Implementación de sentencias condicionales INSTRUCCIONES DE COMPARACIÓN Y SALTOS
Arquitectura de Computadoras
4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen [email protected] http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice
Arquitectura de Computadores. Miguel Figueroa Oficina Arquitectura de conjunto de instrucciones (ISA)
543.426 Arquitectura de Computadores Arquitectura de conjunto de instrucciones (ISA) Miguel Figueroa Oficina 235 Email: [email protected] 1 Arquitectura de conjunto de instrucciones Instruction Set
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
FUNCIONAMIENTO DIGITAL DE UN SISTEMA. EL SISTEMA BINARIO. Sistema Digital. Fr. Casares. Sistema Digital. Sistema Digital
FUNCIONAMIENTO DIGITAL Sistema Digital -Emplea dispositivos en los que solo son posibles dos estados DE UN SISTEMA. EL SISTEMA BINARIO Relé Elemento Válvula Situación (Falso) (Verdadero) Desactivado Cerrada
Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora
Programación de Sistemas Unidad 1. Programación de Sistemas y Arquitectura de una Computadora Programación de Sistemas Arquitectura de una Computadora Componentes de un Sistema de Cómputo Un sistema está
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
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 Para la realización del presente examen se dispondrá de 1 hora y media. NO se podrán
Estructura de Computadores
Estructura de Computadores Tema 3. Programación en ensamblador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Fundamentos
Ingeniería Técnica en Informática de Sistema E.T.S.I. Informática Universidad de Sevilla
Fundamentos de Computadores Representación Binaria Ingeniería Técnica en Informática de Sistema E.T.S.I. Informática Universidad de Sevilla Versión 1.0 (Septiembre 2004) Copyright 2004 Departamento de
Lógica Binaria. Arquitectura de Ordenadores. Codificación de la Información. Abelardo Pardo [email protected]. Universidad Carlos III de Madrid
Arquitectura de Ordenadores Codificación de la Información Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Lógica Binaria COD-1 Internamente el ordenador
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
Resumen Lenguaje Java
Resumen Lenguaje Java Comentarios Elementos del Lenguaje De una sola línea // comentario De varias líneas /* Este es un comentario de varias líneas */ Comentarios para Javadoc /** * The Example class */
Definición de Memoria
Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria
ELECTRÓNICA DIGITAL TEMA 1
ELECTRÓNICA DIGITAL TEMA CÓDIGOS BINARIOS 2 Escuelas Técnicas de Ingenieros CÓDIGOS BINARIOS CÓDIGOS BINARIOS CÓDIGO BINARIO NATURAL CÓDIGO BINARIO NATURAL 5 4 3 2 9 8 7 6 5 4 3 2 Sistema decimal de numeración
A continuación se mostrarán ejemplos de tres clases de códigos: numéricos, alfanuméricos y de despliegue.
Capítulo 3 1 Codificación binaria 3.1. Codificación En un ambiente de sistemas digitales se denomina codificación a la asignación de un significado a una configuración de bits. Al modelar problemas es
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
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores
6.5. Comunicación de las funciones con su entorno. Hasta el momento se ha conceptualizado una subrutina como un segmento de código que ocurre a menudo en un programa. La idea puede flexibilizarse y aumentar
Apéndice A. Manual de usuario. Guía rápida
Apéndice A Manual de usuario En este manual se explica como utilizar Simula3MS. En la sección A.1 se enumeran los pasos básicos para usar la herramienta. A continuación se describen de forma más detallada
MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES
MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES J.D. MUÑOZ1, S. ALEXANDRES1 Y C. RODRÍGUEZ-MORCILLO2 Departamento de Electrónica y Automática. Escuela Técnica Superior de Ingeniería ICAI.
Datos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
CODIFICACIÓN DE LA FUENTE
CODIFICACIÓN DE LA FUENTE 1. OBJETIVO: General: o Conocer el proceso de formateo digital e implementar un sistema prototipo con codificación ASCII. Específico: o Identificar los códigos de formateo digital
Estructura 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
Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores
Departamento de Ingeniería Electrónica Facultad de Ingeniería Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores Unidad 3: MIPS ISA Prof. Felipe Cabarcas [email protected]
Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras
Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras http://www.herrera.unt.edu.ar/arqcom [email protected] Temario 1. Evolución histórica. 2. Repaso de conceptos importantes.
Organizació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
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.
Tema 1: Sistemas de numeración
1 Tema 1: Sistemas de numeración Felipe Machado Norberto Malpica Susana Borromeo Joaquín Vaquero López, 2013 2 01 Digital vs. Analógico Índice 02 Sistemas de numeración 03 Códigos binarios 04 Aritmética
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
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
Estructura de Computadores Tema 1. Introducción a los computadores
Estructura de Computadores Tema 1. Introducción a los computadores Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido
Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2
Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2 Departamento de Ingeniería de Sistemas Universidad id d de Antioquia i 2011 2 Unidad de control principal Mediante el
Lección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
El Diseño de un Lenguaje Máquina
Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje
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
Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio
Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Modelo de von Neumann Profesor: Felipe Cabarcas Correo:[email protected] Oficina:
TEMA 4. ARQUITECTURA IA-64
TEMA 4. ARQUITECTURA IA-64 Stalling, W.Computer Organization and Architecture cap. 15 Intel IA-64 Architecture Software Developer s Manual Generalidades IA-64 Desarrollo conjunto Intel-HP Nueva arquitectura
Datos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
Los dos círculos deben quedar unidos al centro y con la posibilidad de girar cada uno de ellos de forma independiente.
MATERIAL NECESARIO PARA LAS SESIONES DE CRIPTOGRAFÍA CLÁSICA SUSTITUCIÓN MONOALFABÉTICA POLIGRÁMICA - 20 de Agosto REGLAS PARA EL ALGORITMO PLAYFAIR Regla Si m1 y m2: Entonces c1 y c2: 1 Se encuentran
Disco de Alberti. Y el disco interno: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
Disco de Alberti Se encuentra descrito en un manuscrito del siglo XVI en el cual su creador, Leon Battista Alberti explica su funcionamiento y denota el uso básico de dos alfabetos de la siguiente manera:
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
2. Desde los transistores hasta los Circuitos Integrados 3Sit 3. Sistemas de representación numérica éi 4. Números con signo
Electrónica Digital: Introducción 1Sñl 1. Señales Analógicas lói Sñl Señales Diitl Digitales 2. Desde los transistores hasta los Circuitos Integrados 3Sit 3. Sistemas de representación numérica éi 4. Números
Práctica 4 - Arquitectura CPU
Práctica 4 - Arquitectura CPU Organización del Computador 1 1er. Cuatrimestre 2006 Programación en Assembler Ejercicio 1 Dados los siguientes valores de la memoria y del registro R0 de la arquitectura
1. Introducción a la Arquitectura de Computadoras
1. Introducción a la Arquitectura de Computadoras M. Farias-Elinos Contenido Definiciones Estructura de una computadora Evolución de las computadoras Generaciones de computadoras Evolución de la família
UNIDAD 3 Representación de la Información
DEPARTAMENTO DE ELECTRONICA Y AUTOMATICA UNIDAD 3 Representación de la Información Cátedra: INFORMATICA I (BIO) COMPUTACION I (ELO) UNIDAD 3 REPRESENTACION DE LA INFORMACION 3.1- Sistemas Numéricos. En
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
TEMA V SISTEMAS DE NUMERACIÓN
TEMA V SISTEMAS DE NUMERACIÓN En la vida diaria el hombre se expresa, se comunica, almacena y maneja información desde el punto de vista alfabético con un determinado idioma y desde el punto de vista numérico
Computación Tercer Año
Colegio Bosque Del Plata Computación Tercer Año UNIDAD 2 Digitalización de la información y su almacenamiento E-mail: [email protected] Profesor: Fernando J. Garcia Ingeniero en Sistemas de Información
Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
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,
Bitácoras de password red de datos.
Bitácoras de password red de datos. Se describe el método Bitácoras de password red de datos (MTD-BPRD) como una herramienta, creada para la administración de password (contraseña o clave) de una red de
Unidad IV: Programación de microcontroladores
Unidad IV: Programación de microcontroladores El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos,
3 - Arquitectura interna de un up
[email protected] 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Ejercicios Jerarquía de Memoria
Ejercicios Jerarquía de Memoria Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Memoria caché CPU cache Memoria principal 2. Memoria
LENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
ELO311 Estructuras de Computadores Digitales. Unidad Aritmética
ELO3 Estructuras de Computadores Digitales Unidad Aritmética Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization &
Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos
Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria
TEMA II SISTEMAS DE NUMERACIÓN USUALES EN INFORMÁTICA.
TEMA II SISTEMAS DE NUMERACIÓN USUALES EN INFORMÁTICA. INTRODUCCIÓN. Codificación de la información. Codificación consiste en representar los elementos de un conjunto mediante los elementos de otro conjunto.
Expresiones Lógicas y Operadores sobre Bits
Expresiones Lógicas y Operadores sobre Bits Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 Expresión
Diseño del procesador MIPS R2000
Diseño 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 1.
11/02/2009 IEC 61131-3. 11 de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC 61131-3 ( Programación en ST )
IEC 61131-3 Programación en ST (Structured Text) 11 de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC 61131-3 ( Programación en ST ) Introducción 1 qué es y para
Documentación del simulador SPIM.
Universidad de León Departamento de Ingeniería Eléctrica y de Sistemas y Automática (C) Prof. José M. Foces, 1998-2006. [email protected] Documentación del simulador SPIM. Versión para Windows. Adaptada
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
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Curso de Programación Avanzada en C
Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados
8.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
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Organización n del Computador. CPU (ISA) Conjunto de Instrucciones de la Arquitectura
Organización n del Computador CPU (ISA) Conjunto de Instrucciones de la Arquitectura Estructura (computadora) periféricos Computador Computador Unidad Central de Proceso CPU Sistema de interconexión Memoria
UNIDAD 4: El procesador: Camino de los datos y Control.
UNIDAD 4: El procesador: Camino de los datos y Control. 4.1 Introducción El rendimiento de una máquina depende de tres factores clave: Conteo de Instrucciones, tiempo del ciclo de reloj y ciclos de reloj
SISTEMAS OPERATIVOS Arquitectura de computadores
SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega [email protected] Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios
