2
1. Diseña un programa ensamblador que defina el vector de enteros de dos elementos V=(10,20) en la memoria de datos a partir de la dirección 0x10000000 y almacene su suma a partir de la dirección donde acaba el vector. 2. Diseña un programa ensamblador que divida los enteros 18,-1215 almacenados a partir de la dirección 0x10000000 entre el número 5 y que a partir de la dirección 0x10010000 almacene el cociente de dichas divisiones. 3. Pon a cero los bits 3,7,9 del entero 0xabcd12bd almacenado en memoria a partir de la dirección 0x10000000, sin modificar el resto. 4. Multiplica el número 0x1237, almacenado en memoria a partir de la dirección 0x10000000, por 32 (2 5 ) sin utilizar las instrucciones de multiplicación ni las pseudoinstrucciones de multiplicación. 5. Diseña un programa en ensamblador que defina un vector de booleanos, V. Este se implementa a partir de un vector de bytes donde cada byte sólo puede tomar dos valores, 0 ó 1, para el valor cierto o falso, respectivamente. V se inicializará con los siguientes valores V=[0,1,1,1,0]. El programa obtendrá otro vector de booleanos, res, de tres elementos tal que res[1]= (V[1] and V[5]), res[2]=(V[2] or V[4]) , res[3]=((V[1] or V[2]) and V[3]). 6. Diseña un programa en ensamblador que defina un vector de enteros, V, inicializado según los siguientes valores (V=[2, -4, -6]). Y obtenga un vector de booleanos, tal que cada elemento será 1 si el correspondiente elemento en el vector de enteros es mayor o igual que cero y 0 en caso contrario. 7. Diseña un programa en ensamblador que defina un vector de enteros, V, inicializado a los siguientes valores V=[1, -4, -5, 2] y obtenga como resultado una variable booleana que será 1 si todos los elementos de este vector son menores que cero. 8. Diseña un programa en ensamblador que almacene en memoria los 5 enteros siguientes (dato1=2, dato2=10, dato3=50, dato4=70, dato5=34) y que reserve 1 palabra para almacenar el resultado, (variable res). Implementa en ensamblador del R2000 un programa que almacene en la variable res un 1 si dato5 está en alguno de los intervalos formados por dato1 y dato2 o dato3 y dato4. Se almacenará un cero en caso contrario. 9. Diseña un programa en ensamblador que dado un vector de enteros, obtenga como resultado cuántos elementos son iguales a cero. Este resultado se debe almacenar sobre la variable “total”. El programa deberá inicializar los elementos del vector en memoria, así como una variable que almacenará el número de elementos que tiene el vector y reservará espacio para la variable resultado. 10. Diseña un programa en ensamblador que dado un vector de enteros “V” obtenga cuántos elementos de este vector están dentro del rango determinado por dos variables “rango1” y “rango2”. El programa deberá inicializar los elementos del vector en memoria, una variable que almacenará el número de elementos que tiene ese vector y dos

Relacion de Ejecicios20012

Embed Size (px)

Citation preview

Page 1: Relacion de Ejecicios20012

1. Diseña un programa ensamblador que defina el vector de enteros de dos elementos V=(10,20) en la memoria de datos a partir de la dirección 0x10000000 y almacene su suma a partir de la dirección donde acaba el vector.

2. Diseña un programa ensamblador que divida los enteros 18,-1215 almacenados a partir de la dirección 0x10000000 entre el número 5 y que a partir de la dirección 0x10010000 almacene el cociente de dichas divisiones.

3. Pon a cero los bits 3,7,9 del entero 0xabcd12bd almacenado en memoria a partir de la dirección 0x10000000, sin modificar el resto.

4. Multiplica el número 0x1237, almacenado en memoria a partir de la dirección 0x10000000, por 32 (25) sin utilizar las instrucciones de multiplicación ni las pseudoinstrucciones de multiplicación.

5. Diseña un programa en ensamblador que defina un vector de booleanos, V. Este se implementa a partir de un vector de bytes donde cada byte sólo puede tomar dos valores, 0 ó 1, para el valor cierto o falso, respectivamente. V se inicializará con los siguientes valores V=[0,1,1,1,0]. El programa obtendrá otro vector de booleanos, res, de tres elementos tal que

res[1]= (V[1] and V[5]), res[2]=(V[2] or V[4]) , res[3]=((V[1] or V[2]) and V[3]).

6. Diseña un programa en ensamblador que defina un vector de enteros, V, inicializado según los siguientes valores (V=[2, -4, -6]). Y obtenga un vector de booleanos, tal que cada elemento será 1 si el correspondiente elemento en el vector de enteros es mayor o igual que cero y 0 en caso contrario.

7. Diseña un programa en ensamblador que defina un vector de enteros, V, inicializado a los siguientes valores V=[1, -4, -5, 2] y obtenga como resultado una variable booleana que será 1 si todos los elementos de este vector son menores que cero.

8. Diseña un programa en ensamblador que almacene en memoria los 5 enteros siguientes (dato1=2, dato2=10, dato3=50, dato4=70, dato5=34) y que reserve 1 palabra para almacenar el resultado, (variable res). Implementa en ensamblador del R2000 un programa que almacene en la variable res un 1 si dato5 está en alguno de los intervalos formados por dato1 y dato2 o dato3 y dato4. Se almacenará un cero en caso contrario.

9. Diseña un programa en ensamblador que dado un vector de enteros, obtenga como resultado cuántos elementos son iguales a cero. Este resultado se debe almacenar sobre la variable “total”. El programa deberá inicializar los elementos del vector en memoria, así como una variable que almacenará el número de elementos que tiene el vector y reservará espacio para la variable resultado.

10. Diseña un programa en ensamblador que dado un vector de enteros “V” obtenga cuántos elementos de este vector están dentro del rango determinado por dos variables “rango1” y “rango2”. El programa deberá inicializar los elementos del vector en memoria, una variable que almacenará el número de elementos que tiene ese vector y dos

Page 2: Relacion de Ejecicios20012

variables donde se almacenarán los rangos. También deberá reservar espacio para la variable resultante.

11. Diseña un programa en ensamblador que dado un vector de caracteres, contabilice cuántas veces se repite un determinado carácter en el mismo. El programa deberá inicializar la cadena en memoria, y ésta deberá finalizar con el carácter nulo. También deberá reservar espacio para la variable resultado.