You are on page 1of 7

Control Problemas

Programación
21/12/2022
SOLUCIONES Propuestas
Grupo 411 (10.30 a 11.30) - Edixon
Dado el siguiente fragmento de código, en lenguaje C, escriba el fragmento de
código equivalente en lenguaje máquina. Caso que sea necesario puede asignar a
cada variable la dirección que considere adecuada.

#define MAX=2500 Direcciones consideradas 100 MOV X,#0


int k, min, vect[MAX]; 101 MOV RG0,1000(X)
k = 1; vect[0] -> 1000 102 INC X
min = vect[0]; min -> 999 103 CMP X,#2500
... 104 BOZ 109
While (k < MAX) 105 CMP RG0,1000(X)
{ 106 BON 108
if min > vect[k] 107 MOV RG0,1000(X)
min = vect[k]; 108 JMP 102
k++; 109 MOV 999, RG0
}
Grupo 412 (11.30 a 12.30) - Edixon
Dado el siguiente fragmento de código, en lenguaje C, escriba el fragmento de
código equivalente en lenguaje máquina. Caso que sea necesario puede asignar a
cada variable la dirección que considere adecuada.
#define TOT=1250
int i, sum_negativos, count_negativos,
100 MOV X,#0
A[TOT]; 101 MOV RG0,#0
sum_negativos = 0; 102 MOV RG1,#0
count_negativos = 0 103 CMP X,#1250
104 BOZ 10B
for (i=0; i < TOT; i++) 105 CMP 1000(X),#0
{ 106 BNN 109
if A[i] < 0
107 ADD RG0,1000(X)
sum_negativos = sum_negativos + A[i];
count_negativos++;
108 INC RG1
} 109 INC X
10A JMP 103
Direcciones consideradas 10B MOV 999, RG0
A[0] -> 1000 10C MOV 998, RG1
sum_negativos -> 999
count_negativos -> 998
Grupo 431 (12.30 a 13.30) - Edixon
Dado el siguiente fragmento de código, en lenguaje C, escriba el fragmento de
código equivalente en lenguaje máquina. Caso que sea necesario puede asignar a
cada variable la dirección que considere adecuada.
100 MOV X,#0
#define M=1000 101 CMP X,#1000
int i, vector1[M], vector2[M]; 102 BOZ 10A
... 103 MOV RG0,1000(X)
for (i=0; i< M; i++) 104 CMP #0,RG0
{
105 BNN 108
if vector1[i] > 0
vector2[i] = vector1[i] * vector1[i]; 106 MUL RG0,RG0
} 107 MOV 2000(X),RG0
108 INC X
109 JMP 101
10A ...
Direcciones consideradas
vector1[0] -> 1000
vector2[0] -> 2000
Grupo 432 (13.30 a 14.30) - Sandra
Dado el siguiente fragmento de código, en lenguaje C, escriba el fragmento de
código equivalente en lenguaje máquina. Caso que sea necesario puede asignar a
cada variable la dirección que considere adecuada.
#define P 1800 100 MOV X,#0
int j, A[P] 101 MOV RG0,1000(X)
j = 1; 102 INC X
max = A[0] 103 CMP X,#1800
... 104 BOZ 109
while (j < P){ 105 CMP RG0,1000(X)
if max < A[j] 106 BNN 108
max = A[j]; 107 MOV RG0,1000(X)
j++; 108 JMP 102
} 109 MOV 999, RG0

Direcciones consideradas
A[0] -> 1000
max -> 999
Grupo 451 (15.00 a 16.00) - Sandra
Dado el siguiente fragmento de código, en lenguaje C, escriba el fragmento de
código equivalente en lenguaje máquina. Caso que sea necesario puede asignar a
cada variable la dirección que considere adecuada.
#define M 1500 100 MOV X,#0
int i, A[M], B[M]; 101 CMP X,#1500
i=0; 102 BOZ 10A
... 103 MOV RG0,1000(X)
while ( i < M) { 104 CMP RG0,#0
if (A[i]>=0) 105 BON 108
B[i] = A[i] * A[i]; 106 MUL RG0,RG0
i++; 107 MOV 2500(X),RG0
} 108 INC X
109 JMP 101
10A ...
Direcciones consideradas
A[0] -> 1000
B[0] -> 2500
Grupo 452 y 471 (16.00 a 17.00) - Sandra
Dado el siguiente fragmento de código, en lenguaje C, escriba el fragmento de
código equivalente en lenguaje máquina. Caso que sea necesario puede asignar a
cada variable la dirección que considere adecuada.
#define N 500
100 MOV X,#0
int i, A[N], B[N], C[N];
101 CMP X,#500
i = 0;
102 BOZ 10B
...
103 MOV RG0,1000(X)
While ( i < N )
{ 104 MOV RG1,1500(X)
105 CMP RG1,RG0
if ( A[i] > B[i] )
106 BNN 109
{C[i] = A[i] * B[i]};
107 MUL RG0,RG1
i++;
108 MOV 2000(X),RG0
}
109 INC X
10A JMP 101
Direcciones consideradas
10B ...
A[0] -> 1000
B[0] -> 1500
C[0] -> 2000

You might also like