ETC1. Ejercicios Subrutinas 1.- 2.-

Anuncio
ETC1. Ejercicios Subrutinas
1.-
En base al siguiente programa en ensamblador:
.data 0x10000200
.word 3, 14
C: .word 4
.text 0x400000
.globl __start
__start:
la $6, C
lw $3, -4($6)
lw $4, -8($6)
jal xx
sw $2, 0($6)
.end
xx:
.text 0x400400
div $3, $4
mflo $2
srl $2, $2, 1
jr $31
Indíquese el contenido de la memoria después de ejecutar el programa.
Dirección
0x1000 0200
0x1000 0204
0x1000 0208
0x1000 020C
2.-
A)
3
14
4
B)
3
14
2
C)
3
14
0
2
Contenido
D)
E)
3
Ninguna de las anteriores
14
0
4
En base al siguiente programa en ensamblador:
C:
.data 0x10000200
.word 0x2,0x20
.space 4
.text 0x400000
__start:
la $6, C
lw $3, -4($6)
lw $4, -8($6)
jal xx
sll $2,$2,2
sw $2,-4($6)
.end
xx:
.text 0x400400
div $3,$4
mflo $2
srl $2,$2,1
jr $31
Indíquese el contenido de la memoria después de ejecutar el programa.
Dirección
0x1000 0200
0x1000 0204
0x1000 0208
0x1000 020C
A)
2
32
4
B)
2
64
0
Contenido
D)
E)
2
Ninguna de las anteriores
32
64
C)
2
32
0
En base al siguiente programa escrito en lenguaje ensamblador, conteste las
siguientes dos preguntas:
.data 0x10000000
resultado: .word 0
.text 0x400000
__start:
li $4,0
li $5,1
li $6,2
li $7,3
jal F
la $6,resultado
sw $2,0($6)
.end
F:
.text 0x400400
addi $29,$29,-16
sw $6,0($29)
sw $5,4($29)
sw $4,8($29)
sw $31,12($29)
bgt $6,$7,fin
add $2,$4,$5
addi $6,$6,1
add $4,$0,$5
add $5,$0,$2
jal F
fin:
lw $6,0($29)
lw $5,4($29)
lw $4,8($29)
lw $31,12($29)
addi $29,$29,16
jr 31
3.-
Indíquese cuántas veces se invoca a la subrutina F durante la ejecución
del programa:
A)
B)
C)
D)
E)
Una sola vez por el programa principal.
Dos veces, una por el programa principal y otra por la misma subrutina.
Tres veces, una por el programa principal y dos por la misma subrutina.
La subrutina se mete en un bucle infinito.
Ninguna de las anteriores.
4.-
Los contenidos de los registros $4, $5, $6, $7 y $2 después de ejecutar
el programa anterior son:
a)
Registro
$4
$5
$6
$7
$2
Contenido
1
1
0x10000000
3
2
b)
Registro
$4
$5
$6
$7
$2
Contenido
0
1
0x10000000
3
3
c)
Registro
$4
$5
$6
$7
$2
Contenido
1
1
0x10000000
3
3
d)
Registro
$4
$5
$6
$7
$2
Contenido
0
1
0x10000000
3
2
e) Ninguna de las anteriores.
5.-
En el siguiente código en ensamblador del MIPS:
D:
.data 0x10000000
.word 3
.text 0x400000
__start:
la $5, D
addi $29, $29, -4
sw $5, 0($29)
jal subrutina
j fin
subrutina:
lw $4, 0($29)
lw $5, 0($4)
addi $5, $5, $5
sw $5, 0($4)
addi $29, $29, 4
jr $31
fin:
.end
El paso de parámetros se realiza:
A)
B)
C)
D)
E)
6.-
Por pila y por valor.
Por registro y por valor.
Por pila y por referencia.
Por registro y por referencia.
Ninguna de las anteriores.
Se desea implementar un programa principal que llame a una subrutina
A y ésta a una subrutina B. Para esto el programa principal ejecuta jal A y la
subrutina A ejecuta jal B y como última instrucción jr $31. Además de esto
para una correcta ejecución se debería:
A) El programa principal debe guardar la dirección de retorno de A en la
pila, y la subrutina A la dirección de retorno de B.
B) El programa principal debe guardar la dirección de retorno de A y la de B
en la pila.
C) La subrutina A debe guardar la dirección de retorno a la subrutina B en
la pila.
D) La subrutina A debe guardar la dirección de retorno al programa
principal en la pila.
E) Ninguna de las anteriores.
Descargar