Ejercicios - Arcos

Transcripción

Ejercicios - Arcos
Ejercicios
Fundamentos de la programación en ensamblador
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniería Informática
Universidad Carlos III de Madrid
Contenidos
Formato de instrucciones
Modos de direccionamiento
Programación en ensamblador:
2
Problemas aritméticos
Vectores
Tiras de caracteres
ARCOS @ UC3M
Alejandro Calderón Mateos
Contenidos
Formato de instrucciones
Modos de direccionamiento
Programación en ensamblador:
3
Problemas aritméticos
Vectores
Tiras de caracteres
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
La instrucción de salto j dirección tiene el siguiente
formato:
6 bits
26 bits
02
dirección
Si la dirección es un número en signo magnitud que
representa el desplazamiento relativo al contador de
programa (en palabras a saltar), se pide indicar cual
es la zona de memoria a la que se puede saltar
razonando la respuesta.
4
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Sea un computador de 16 bits,
que direcciona la memoria por bytes y
que incluye un repertorio con 60 instrucciones
máquina. El banco de registros incluye 8 registros.
Se pide:
Indicar el formato de la instrucción ADDV R1 R2 M,
donde R1 y R2 son registros y M es una dirección
de memoria.
5
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Sea un computador de 32 bits, que direcciona la
memoria por bytes. El computador incluye 64
instrucciones máquina y 128 registros. Considere la
instrucción
SWAPM dir1, dir2, que intercambia el contenido de
las posiciones de memoria dir1 y dir2.
Se pide:
a)
b)
c)
6
Indicar el espacio de memoria direccionable en este
computador.
Indicar el formato de la instrucción anterior.
Especifique un fragmento de programa en ensamblador
del MIPS 32 equivalente a la instrucción máquina
anterior.
ARCOS @ UC3M
Alejandro Calderón Mateos
Contenidos
Formato de instrucciones
Modos de direccionamiento
Programación en ensamblador:
7
Problemas aritméticos
Vectores
Tiras de caracteres
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Disponemos de un computador cuyo bus de datos tiene un tamaño de 32
bits, el tamaño de sus registros también es de 32 bits, utiliza un sistema de
memoria paginada y que maneja el siguiente formato de instrucción:
Código de operación (8 bits)
Registro (8 bits)
Dirección (16 bits)
A la vista de esta información, se pide (Razone todas las respuestas):
Cual es el número máximo de instrucciones que puede tener este
computador en su juego de instrucciones.
Número de registros de uso general que posee la máquina.
Si utilizamos direccionamiento directo, que cantidad de memoria es
posible direccionar con este formato de instrucciones. Explique en que
consiste el direccionamiento directo
Si utilizamos direccionamiento indirecto, que cantidad de memoria es
posible direccionar con este formato de instrucciones. Explique en que
consiste el direccionamiento indirecto.
a)
b)
c)
d)
8
ARCOS @ UC3M
Alejandro Calderón Mateos
Contenidos
Formato de instrucciones
Modos de direccionamiento
Programación en ensamblador:
9
Problemas aritméticos
Vectores
Tiras de caracteres
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Se tiene tres etiquetas que representan la dirección
de memoria de tres números:
numero1: .word 100
numero2: .word -10
resultado: .word 0
Escriba un programa que:
10
Sume los dos primeros números etiquetados por
numero1 y numero2 y deje el resultado en el tercer
número etiquetado por resultado.
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Se tiene dos números en $t0 y $t1.
Escribir un programa que almacene un 0 en $t2 si
$t0 es mayor que $t1 y un 1 en caso contrario
11
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Escriba un programa que:
12
Calcule la suma de los primeros 100 números naturales y
deje este valor en el registro $v0
ARCOS @ UC3M
Alejandro Calderón Mateos
Contenidos
Formato de instrucciones
Modos de direccionamiento
Programación en ensamblador:
13
Problemas aritméticos
Vectores
Tiras de caracteres
ARCOS @ UC3M
Alejandro Calderón Mateos
Pregunta 5 (2 puntos)
10 minutos máx.
Codifique en ensamblador MIPS una subrutina que
busca un número entero de una palabra en un
vector de números enteros (distintos de cero).
A dicha rutina se le pasa en $a0 la dirección del
vector de números enteros que termina en el
número entero cero (que marca el final del vector) y
en $a1 el número que se quiere buscar.
La rutina dejará en $v0 la dirección de la primera
aparición del número dado en $a1 que pertenece al
vector dado en $a0. Si no está presente el carácter,
se almacena cero en $v0.
14
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Escriba un programa que incremente en uno los
valores de un vector de 100 enteros, que están
almacenados en memoria a partir de la dirección
dada por la etiqueta memoria
15
ARCOS @ UC3M
Alejandro Calderón Mateos
Contenidos
Formato de instrucciones
Modos de direccionamiento
Programación en ensamblador:
16
Problemas aritméticos
Vectores
Tiras de caracteres
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
En Pascal, una cadena de caracteres comienza por
un byte cuyo valor es el número de caracteres, y a
continuación la secuencia de los caracteres
representados como bytes
En C, una cadena de caracteres es la secuencia de
caracteres terminada por un carácter adicional
representado por el byte con valor cero.
Escriba en ensamblador como se podría representar
una cadena de caracteres del lenguaje Pascal
(tiraPascal)
y una cadena de caracteres de C (tiraC)
17
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicio
Escriba un programa que:
18
Calcule la longitud de la tira de caracteres
dada por la etiqueta tira1 y deje el valor en el registro $v0
La tira de caracteres está representada como
en el lenguaje C
ARCOS @ UC3M
Alejandro Calderón Mateos
Pregunta 5 (2 puntos)
10 minutos máx.
Codifique en ensamblador MIPS una subrutina que
busca un carácter en una cadena de caracteres.
A dicha rutina se le pasa en $a0 la dirección de una
cadena de caracteres terminada en el carácter nulo
(el byte 0) y en $a1 el carácter que se quiere buscar.
La rutina dejará en $v0 la dirección de la primera
aparición del carácter dado en $a1 que pertenece a
la cadena dada en $a0. Si no está presente el
carácter, se almacena cero en $v0.
19
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejercicios
Fundamentos de la programación en ensamblador
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniería Informática
Universidad Carlos III de Madrid

Documentos relacionados