Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Asignatura
ARQUITECTURA DEL
COMPUTADOR
Arequipa - 2023
1|Página
Evaluación de desarrollo
Lenguaje ensamblador
1. Codifica en ensamblador la siguiente condición IF-THEN-ELSE:
if (x >= y) {
x = x+2;
y = y+2;
else {
x = x‐2;
y = y‐2;
Codigo
IF: #Función IF
j END
THEN:
END:
2|Página
Ejecución cuando X > Y
3|Página
Ejecución cuando X < Y
4|Página
Ejecución cuando X = Y
5|Página
2. Codifica en ensamblador el siguiente bucle WHILE-DO:
n = 5;
fant = 1;
f = 1;
i = 2;
while (i <= n) {
faux = f;
f = f + fant;
fant = faux;
i = i+1;
Codigo
li $t0,5 # n=5;
li $t1,1 # fant=1;
li $t2,1 # f=1;
li $t3,2 # i=2;
while: bge $t3,$t0,end # $t3 es mayor o igual a $t0 y cumple cuando $t3 es menor o igual a $t0 es
verdadero (i <= n)
#Bucle
b while
end:
6|Página
7|Página
8|Página
3. El siguiente programa calcula el máximo común divisor de dos números a y b según el
algoritmo de restas de Euclides. Traducirlo a ensamblador:
int a=5, b=15, mcd;
While (a≠b){
if (a>b)
a=a‐b;
else
b=b‐a;
mcd=a;
Codigo
li $t0, 5 # a=5;
li $t1, 15 # b=15;
while1: beq $t0 $t1 fin1 # Si a ($t0) es igual a b ($t1), salta a fin1
if_1: blt $t0 $t1 else_1 # Si a ($t0) es menor que b ($t1), salta a then_1
then_1: sub $t0 $t0 $t1 #Resta a ($t0) de b ($t1) y almacena el resultado en $t1
else_1: sub $t1 $t1 $t0 #resta b ($t1) de a ($t0) y almacena el resultado en $t0
fin1:
9|Página
10 | P á g i n a
11 | P á g i n a
4. Traduce el siguiente programa escrito en un lenguaje de alto nivel a lenguaje ensamblador. La
órden swap(a, b) intercambia los valores de las variables a y b.
if (a<b)
swap (a, b);
else
b= a‐1;
Codigo
li $t0 13 #a=13
li $t1 16 #b=16
while1:
ble $t0 10 fin1 # si a ($t0) es menor o igual a 10, salta a fin1
sub $t0 $t0 1 # a=a-1
add $t1 $t1 2 # b=b+2
b while1 # vuelve al bucle while1
fin1:
if_1:
bgt $t0 $t1 else1 # Si a ($t0) es mayor que b ($t1), salta a else1
then1:
move $v0 $t0 #funcion swap (a, b)
move $t0 $t1 #funcion swap (a, b)
move $t1 $v0 #funcion swap (a, b)
b fin2
else1: sub $t1 $t0 1 # b=a-1
b fin2
fin2:
12 | P á g i n a
13 | P á g i n a
14 | P á g i n a