Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Instrucciones MIPS: Tipos de direccionamiento y ejercicios resueltos - Prof. 5057, Exámenes de Informática

Este documento contiene información sobre las instrucciones mips, sus modos de direccionamiento y ejercicios resueltos. Aprende a identificar los modos de direccionamiento utilizados por las instrucciones bne, inc, j y sw, y resuelve ejercicios relacionados. Ideal para estudiantes de informática o ciencias de la computación.

Tipo: Exámenes

2012/2013

Subido el 31/03/2013

dani110
dani110 🇪🇸

1 documento

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Control 2 (25% de la nota final) grupoA
Nombre:...........................................................................................................
1TEST.- (3.6 puntos.)
Sólo una de las 4 opciones de cada pregunta es cierta. Redondéala con un
círculo.
Una respuesta correcta es +0,4 puntos, u error resta 0,1 puntos Se aconseja
responder sólo a aquellas cuestiones de cuya respuesta se esté seguro.
1. La instrucción del MIPS bne $t1,$t2, bucle :
a. Utiliza modos de direccionamiento directo a registro e inmediato
b. Utiliza modos de direccionamiento directo a registro y relativo al PC
c. Utiliza modos de direccionamiento indirecto a registro y directo a
memoria
d. Utiliza modos de direccionamiento directo a registro y pseudodirecto
2. La instrucción INC [R4] ; M(R4) M(R4) +1
a. Utiliza modo de direccionamiento directo a registro
b. Utiliza modo de direccionamiento indirecto a registro
c. Utiliza modo de direccionamiento relativo a registro base o índice
d. Ninguna de las anteriores es cierta
3. La instrucción del MIPS j multi
0. Utiliza modos de direccionamiento implícito e inmediato
1. Utiliza modos de direccionamiento implícito y directo a memoria
2. Utiliza modo de direccionamiento pseudodirecto
3. Ninguna de las anteriores es cierta
4. La instrucción del MIPS sw $ra, 4($s1) :
a. Accede a memoria 0 veces durante todo el ciclo de instrucción
b. Accede a memoria 1 vez durante todo el ciclo de instrucción
c. Accede a memoria 2 veces durante todo el ciclo de instrucción
d. Ninguna de las anteriores es cierta
5. Un computador tiene la siguiente instrucción máquina para sacar un dato de la
pila: POP RX. La pila crece en direcciones crecientes y el SP apunta al último
elemento almacenado. Podemos afirmar que
a. Utiliza modo de direccionamiento relativo a SP con pre-auto decremento
b. Utiliza modo de direccionamiento relativo a SP con post-auto
incremento
c. Utiliza modo de direccionamiento relativo a SP con post-auto
decremento
d. Utiliza modo de direccionamiento relativo a SP con pre-auto incremento
6) Si en un programa en lenguaje ensamblador para el MIPS escribimos:
Control 1 “Estructura de Computadores” marzo 2013
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Instrucciones MIPS: Tipos de direccionamiento y ejercicios resueltos - Prof. 5057 y más Exámenes en PDF de Informática solo en Docsity!

Control 2 (25% de la nota final) grupoA

Nombre:...........................................................................................................

1TEST.- (3.6 puntos.)

  • Sólo una de las 4 opciones de cada pregunta es cierta. Redondéala con un círculo.
  • Una respuesta correcta es +0,4 puntos, u error resta 0,1 puntos Se aconseja responder sólo a aquellas cuestiones de cuya respuesta se esté seguro.
  1. La instrucción del MIPS bne $t1,$t2, bucle : a. Utiliza modos de direccionamiento directo a registro e inmediato b. Utiliza modos de direccionamiento directo a registro y relativo al PC c. Utiliza modos de direccionamiento indirecto a registro y directo a memoria d. Utiliza modos de direccionamiento directo a registro y pseudodirecto
  2. La instrucción INC [R4] ; M(R4) M(R4) + a. Utiliza modo de direccionamiento directo a registro b. Utiliza modo de direccionamiento indirecto a registro c. Utiliza modo de direccionamiento relativo a registro base o índice d. Ninguna de las anteriores es cierta
  3. La instrucción del MIPS j multi
  4. (^) Utiliza modos de direccionamiento implícito e inmediato
  5. Utiliza modos de direccionamiento implícito y directo a memoria
  6. Utiliza modo de direccionamiento pseudodirecto
  7. Ninguna de las anteriores es cierta
  8. La instrucción del MIPS sw $ra, 4($s1) : a. Accede a memoria 0 veces durante todo el ciclo de instrucción b. Accede a memoria 1 vez durante todo el ciclo de instrucción c. Accede a memoria 2 veces durante todo el ciclo de instrucción d. Ninguna de las anteriores es cierta
  9. Un computador tiene la siguiente instrucción máquina para sacar un dato de la pila: POP RX. La pila crece en direcciones crecientes y el SP apunta al último elemento almacenado. Podemos afirmar que a. Utiliza modo de direccionamiento relativo a SP con pre-auto decremento b. Utiliza modo de direccionamiento relativo a SP con post-auto incremento c. Utiliza modo de direccionamiento relativo a SP con post-auto decremento d. Utiliza modo de direccionamiento relativo a SP con pre-auto incremento
  1. Si en un programa en lenguaje ensamblador para el MIPS escribimos:

.data numero: .word 0x vector: .word 0xab0123ff,0x10,0x22,0x23,0x77,0x z: .space 20

Cuando se cargue el programa en memoria a) en la dirección vector+1 pondrá el valor 0x b) en la dirección vector+1 pondrá el valor 0xff c) en la dirección vector+1 pondrá el valor 0x d) Ninguna de las anteriores

  1. El proceso de creación y ejecución de un programa en ensamblador se realiza en el siguiente orden. a) Ensamblador, linker, cargador b. Linker, ensamblador, cargador c. Cargador, ensamblador, linker d. Todas las respuestas anteriores son falsas

d.8. Suponer un microprocesador con la siguiente instrucción máquina: STORE Inm8 [Ri], Inm Tiene los modos de direccionamiento inmediato y relativo a registro índice con pretautodecremento. Los registros son de 16 bits Suponiendo que R2 tiene el valor 1000, cuando se ejecute la instrucción STORE 8 [R2], 500 se accederá a la dirección de memoria 5.a. (^1008) 5.b. 1007 5.c. 1499 5.d. Ninguna de las anteriores es cierta.

d.9. De MIPS podemos decir:

a. Es un computador RISC b. Es un computador CISC c. (^) No es ni RISC ni CISC d. Ninguna de las anteriores es cierta.

3 (3. 4 puntos) Sabiendo que los datos se cargan a partir de la dirección 0x200 y las instrucciones a partir de la dirección 0x6000, $sp=0x70000, $ra=0. Responde a las siguientes preguntas:

Dirección (en hex)

.data

a= 200 b= 208 main= 6000 subr1= 602C

c. Ejecutamos el programa hasta la instrucción 1 incluida, indicar el contenido de :

PC= 602C MAR= 6010 SP= 70000 $RA= 6014

IR= 0c00180b

d. Ahora seguimos ejecutando y paramos en la instrucción 2 incluida, indicar el contenido de :

PC= 6034 MAR= 6fffc (es $sp+0) MDR= 6014 (es $ra) SP= 6fffc (es $sp inicial-4)

$RA= 6014 IR= afbf

e. Una vez ejecutado el programa entero indica el valor que se almacena en los registros:

$t0 = 20c $sp= 70000 $ra= 6014 (1er retorno)

f. Una vez ejecutado el programa, indica el valor que toman los bytes almacenamos en las direcciones :

c = 0a c+1= 0

4 (3 puntos) Hacer una rutina el lenguaje ensamblador MIPS llamada INTERCALATABLAS que dadas 2 tablas de enteros genere una tabla resultante con los elementos de las 2 tablas intercalados. El pase de parámetros será por referencia (la dirección de la tabla1 origen y tabla origen se la pasaremos en los registros $a0y $a1 respectivamente y la de la tabla resultante en $a2). Por valor le pasaremos el número de elementos de cada tabla que queremos intercalar. La rutina nos devolverá en $v0 la suma de todos los elementos de la tabla resultante. En la rutina obligatoriamente se usarán bucles para recorrer los vectores.

Hacer un programa principal que defina en memoria lo siguiente: int tabla1[4]={1,2,3,4}; int tabla2[4]={5,6,7,8}; int tabla3[4]={0x10,0x12,0x14,0x16}; int tablaintercalada1[8]; int tablaintercalada2[8]; int resul1= int resul2=

y llame a la rutina anterior 2 veces:

  • una con tabla1, tabla2 , tablaintercalada1 y el nº 3 *otra con tabla3, tabla2, tablaintercalada2y el nº 4 El resultado de la primera llamada debe guardarlo en resul1 y el de la segunda en resul2.

Comentar el programa escrito en lenguaje ensamblador. No se corregirá el programa si no está comentado.

beq $a3,$0, finrutina addi $a3,$a3,-1 # lw $t0,0($a0) #leo tabla origen sw $t0,0($a2) # escribo en tabla intercalada add $v0,$v0,$t0 # addi $a2,$a2, 4 lw $t0,0($a1) #leo tabla origen sw $t0,0($a2) # escribo en tabla intercalada add $v0,$v0,$t0 #

addi $a2,$a2, 4 addi $a0,$a0, 4 addi $a1,$a1, 4 j bucle finrutina: jr $ra