Ejercicios

Páginas: 11 (2608 palabras) Publicado: 29 de septiembre de 2014
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 debe dejar el resultado en el registro $v0.
Ejercicio 2. Dado el siguiente fragmento de programa
.data
a: .word 10
b: .word 5
.text
li $t0 2
lw $t1, a
lw $t2, b
label1: bgt $t0, $t1,label2
addi $t2, $t2, 2
addi $t0, $t0, 1
b label1
label2:
sw $t0, a
sw $t2, b

Indique el valor que tienen los registros $t0, $t1 y $t2 y las posiciones de memoria a y b al final de la ejecución del
programa
Ejercicio 3. Modifique el programa anterior para imprimir el resultado por pantalla.
Ejercicio 4. Escriba un programa que lea dos números enteros A y B e indique si uno de ellos esmúltiplo del otro.
Ejercicio 5. Escriba un programa en ensamblador del MIPS32 que lea un número N y muestre por pantalla lo
siguiente:
1
12
123
1234
…..
1 2 3 4 5 …. N
Ejercicio 6. Indique la secuencia de instrucciones del MIPS necesaria para ejecutar la siguiente sentencia en
lenguaje C (asumiendo que a y b son variables de tipo int)
a = b + c + 100;
Ejercicio 7. Escriba un programa enensamblador que lea dos números enteros. El programa debe imprimir el mayor
de ellos.
Ejercicio 8. Escriba un programa en ensamblador del MIPS que lea un número e indique si el número es par o
impar.
Ejercicio 9 . Escriba un programa en ensamblador que lea un número N par y calcule la siguiente suma: 2 + 4 + 6 +
… + N. Asuma que siempre se introduce un número par. El programa imprimirá elresultado
Ejercicio 10. Escriba una función reciba en el registro $a0 la dirección de comienzo de una cadena de caracteres, en
el registro $a1 el código ASCII de un carácter y en el registro $a2 el código ASCII de otro. La función debe sustituir
en la cadena todas las ocurrencias del carácter almacenado en $a1 por el carácter almacenado en $A2.
Ejercicio 11 . Considere una función denominada funcque recibe tres parámetros de tipo entero y devuelve un
resultado de tipo entero, y considere el siguiente fragmento del segmento de datos:

.data
a: .word 5
b: .word 7
c: .word 9
.text
Indique el código necesario para poder llamar a la función anterior pasando como parámetros los valores de las
posiciones de memoria a, b y c. Una vez llamada a la función deberá imprimirse el valor quedevuelve la función.
Ejercicio 12. Dado el siguiente fragmento de programa
.data
a: .word 10
b: .word 5
.align 2
v: .space 800
.text
. . .
Si v representa un array de número enteros. Indique:
a) El número de elementos del vector.
b) Indique las instrucciones en ensamblador necesarias para ejecutar la siguiente sentencia de alto nivel
v[20] = v[30];
c) Indique las instrucciones enensamblador necesarias para ejecutar: v[10] = b;

Ejercicio 13. Dado el siguiente fragmento de código escrito en C, escriba utilizando el ensamblador del

MIPS 32 el código de la función equivalente.
int máximo(intA, int B)
{
if (A > B)
return A;
else
return B;
}
Utilizando la función en ensamblador anterior implemente el código de la siguiente función utilizando el
ensamblador del MIPS32.

void maximoV (int v1, int v2, int v3, int N)
{
int i;
for (i = 0; i < N; i++)
v3[i] = maximo(v1[i], v2[i]);
return;
}
Para el desarrollo de este ejercicio ha de seguirse la convención de paso de parámetros vista en el temario
de la asignatura.

Ejercicio 14. Dado el siguiente fragmento de programa, escriba un programa equivalente utilizando el ensamblador
del MIPS 32.
intvector[1024];

// variable global

int funcion1()
{
int z;
int i;
for (i = 0; i < 1024; i++)
vector[i] = i;
z = suma(1024);
print_int(z);

int suma(int n)
{
int s = 0;
int i;
for (i = 0; i < n; i ++)
s = s + vector[i];
return s;
}

Ejercicio 15. Dado el siguiente fragmento de programa, escriba un programa equivalente utilizando el ensamblador
del MIPS 32.
void funcion1 ()
{...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ejercicios
  • Ejercicios
  • Ejercicios
  • Ejercicios
  • Ejercicios
  • Ejercicios
  • Ejercicios
  • Ejercicios

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS