Anda di halaman 1dari 2

UNIVERSIDAD TECNOLGICA DE LA

MIXTECA
Arquitectura de Computadoras
Grupo: 704
24 de Noviembre de 2015

Meja Antonio Valeriano

Reporte de prctica
PROBLEMA #8

PRACTICA 8
SOLUCIN :
Suponemos que tenemos un fragmento de cdigo en C:
For ( i=1; i 100; i++)
{
A[i] = B[i] + c;
}

Suponemos que A y B son arreglos de enteros de 64 bits, constante c y variable i son


enteros de 32 bits. Suponemos que los datos encontraran en la memoria con las direcciones
0, 6000, 1500, y 3000 para A, B, c, i respectivamente excepto cuando estn procesando.
Escribir cdigo para ISA MIPS64
Suma:

LD R1, 6000(R0); //Se carga palabra doble en R1 de 64 bits


LW R2, 1500(R0); // Se carga palabra en R2 de 32 bits
DADD R3, R1, R2; //Se suma R1 + R2 y el resultado se guarda en R3
SD 0 (R0), R3; //Se almacena doble palabra en el registro 0, espacio para 64 bits

Main:

SD 3001(R0), R5; // i se guarda en el registro de la direccin 3001


SD 3100(R0), R6; // el registro se guarda en la direccin 3100 para el lmite de i
LD R4, 100; //guardo en R4 el valor numrico de 100
DADDIU R5, R5, R6;

// se suma lo que est en R5 con R6, y lo que se obtenga de la


suma se guarda en R5, incrementa i.

BE R5, R4, Main; // Salta si [R5] == [R6] a la etiqueta Main, acta como i =100, salta si
R5 es igual a cien

BNE R5, R4, Suma; //Si [R5]!= [R4] entonces salta a la etiqueta Suma porque R5 an no
llega a cien

Anda mungkin juga menyukai