Fundamentos De La Programación En Ensamblador
Enviado por harlynmb • 30 de Septiembre de 2014 • 454 Palabras (2 Páginas) • 307 Visitas
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 es mú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
1 2
1 2 3
1 2 3 4
…..
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 en ensamblador 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á el resultado
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 func que 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 que devuelve la función.
Ejercicio 12. Dado el siguiente fragmento de programa
.data
a: .word 10
b: .word 5
.align 2
v: .space 800
...