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