ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

La nueva Programación en ensamblador mips


Enviado por   •  3 de Julio de 2017  •  Informes  •  2.752 Palabras (12 Páginas)  •  168 Visitas

Página 1 de 12

Programación en ensamblador MIPS

Práctica #3


Asunto

Programación en ensamblador MIPS - Práctica #3

Fecha

21 de Octubre del 2016

Programación en ensamblador MIPS

  1. En el centro de un jardín cuadrado de A metros de lado hay una piscina también cuadrada, de B metros de largo. Calcule el área exclusiva de solo jardín. Si el área del  jardín es mayor a los 5000m2, se almacena el área calculada en R[10], si es menor o igual a 5000m2, el área calculada se almacena en R[23]. A y B son adquiridos de memoria externa, R es un vector también externo.

Implementación en Lenguaje de Alto Nivel JAVA

public static void calcularAreaExclusivaDeJardin(int A, int B, int R[]){

        //Calcular area jardin

int areaJardin = 0;

for(int i=0;i

areaJardin = areaJardin + A;

}

//Calcular area piscina

int areaPiscina = 0;

for(int i=0;i

areaPiscina = areaPiscina + B;        

}

//areaExclusivaJardin = areaJardin - areaPiscina

int areaExclusivaJardin = areaJardin - areaPiscina;

//si el area exclusivaJardin es mayor a 5000 m2

//almacenar el valor en R[10]

if(areaExclusivaJardin>5000){        

        R[10] = areaExclusivaJardin;

        }

        //si el area exclusivaJardin es menor o igual

        //a 5000 m2 almacenar el valor en R[23]

        else{

                R[23] = areaExclusivaJardin;

        }

}

Implementación en Lenguaje de Bajo Nivel

addi $s0, $zero, 0                #A

addi $s1, $zero, 0                 #B

addi $s2, $zero, 0                #areaJardin

addi $t3, $zero, 0                #i

Loop: beq $t3, $s0, END

add         $s2, $s2, $s0                #areaJar=areaJardin+A

addi $t3, $t3, 1                        #aumentando i

addi $s3, $zero, 0                #areaPiscina

Loop beq $t3, $s1, END

add  $s3, $s3, $s1                 #areaPis=areaPis+B

addi $t3, $t3, 1                        #aumento el i

addi $s4, $zero, 0                #areaExclusivaJardin

sub  $s4, $s2, $s3                # areaEx=areaJardin-areaPiscina

addi $s5, $zero, 5000

bgt $s4, $s5,        E                #f-Then-Else

E sw $s4, 40($s6)                #en $s6 referencia R[]

ble $4, $$s5, L  

L sw, $s4, 92($s6)                #en $s6 referencia R

Código máquina

Instrucción Tipo R:                sub $s4, $s2, $s3   # areaEx=areaJardin-areaPiscina

Formato R:

Opcode (6 bits)

Rs (5 bits)

Rt (5 bits)

Rd (5 bits)

shamt (5 bits)

funct (6 bits)

ten

0

18

19

20

0

32

bin

000000

10010

10011

10100

00000

100000

Código máquina:

Decimal:                39034912

Binario:                00000010010100111010000000100000

Hexa:                        0253A020

Instrucción Tipo I:                  sw $s4, 40($s6)          # en $s6 referencia R[]

Formato I:

Opcode (6 bits)

Rs (5 bits)

Rt (5 bits)

Cte o Add (16 bits)

ten

35

22

20

40

bin

100011

10110

10100

0000000000101000

Código máquina:

Decimal:                2379087872

Binario:                10001110110101000000000000101000

Hexa:                        23D40028

Diagrama de Flujo

[pic 1]

2. Cierto módulo de software empieza a llenar un vector de 50 posiciones con el resultado de un conteo decimal empezando por un valor de 20 (V[0]=20...V[1]=21... V[3]=23), para el momento en que el contador toma un valor de ‘y’, se ejecuta la función F1 y por último el resultado de Y se almacena en la posición 4 del vector T. Los valores de B, C e ‘y’ son variables y deben ser adquiridos de memoria externa.

(F1) : Y = -B + V[y] – C + 10

Implementación en Lenguaje de Alto Nivel JAVA

public static void moduloSoftware(int y,int B, int C){

        int V[] = new int[50];

        int valorInicio = 20;

        int resultadoEjecucionFuncion = 0;

        for(int i=0;i<50;i++){        

                V[i] = valorInicio + i;        

                if(i==y){

                        resultadoEjecucionFuncion = -B + V[y] -C + 10;

                }

        }

        V[4] = resultadoEjecucionFuncion;

}

Implementación en Lenguaje de Bajo Nivel

...

Descargar como (para miembros actualizados)  txt (9.8 Kb)   pdf (177.9 Kb)   docx (38.1 Kb)  
Leer 11 páginas más »
Disponible sólo en Clubensayos.com