Asignatura: ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES I
Fecha: Septiembre 1.995
Tipo examen: D
PREGUNTAS TEST
1.- Representar el número 95'579 en base 5 con coma fija en sistema de módulo y signo, utilizando cuatro cifras fraccionarias y tantas cifras enteras como sea preciso.
Solución:
1102'4413
144'3233
421'0402
340'2421
2.- Considérese el computador ejemplo del Tema 7 de las Unidades Didácticas. Supóngase que tanto los registros como los buses de datos y direcciones como la memoria tienen 16 bits. En un instante determinado el contenido (expresado en hexadecimal) de los siguientes registros es: (R2) = 210D, (R1) = 0C3F, (RM) = 0035, (AC) = B001, donde R2 es un registro de la batería BR. En ese instante comienza el período 1 del cronograma de la figura. Al finalizar el período 2, el contenido del registro acumulador AC es:
PERIODO !
Reloj !
1
___øø
2
___øø
CR01AC
___øø
-----------
SBRS
--< R2 >--
-----------
CR02BR
___øø
-----------
OP
-----------
< ADD >
CAC
-----------
___øø
2D4C
2142
D10E
BC40
3.- Se dispone de un computador dotado de un microprocesador M68000. En un momento dado, el contenido de los registros D0, D1 y D2 es (D0) = $20008541, (D1) = $45103421 y (D2) = $3549BA21. Indicar cuál será el contenido final de los registros D0 y D1 si inmediatamente se ejecuta el siguiente fragmento de programa:
ADD.B
D2,D1
BEQ
OP2
OP1
ROR.B
#1,D0
BRA
SEGUIR
OP2
ROR.W
#1,D1
SEGUIR
NOP
Solución:
(D0) = $20008541; (D1) = $3549C2A0
(D0) = $20008541; (D1) = $45101A21
(D0) = $900042A0; (D1) = $45103442
(D0) = $200085A0; (D1) = $45103442
4.- Sea un sistema de representación numérica en binario sin signo de 4 bits b3b2b1b0 (indicados de mayor a menor peso). Construir una función lógica que valga 1 cuando un número dado representado en este sistema sea múltiplo de 4, y que valga 0 en caso contrario. (NOTA: considerar que el 0 es múltiplo de 4).
Solución:
b2 · b1' · b0'
b1' · b0'
b3 · b1' + b2 · b0'
b3 · b2
5.- Un computador posee un registro índice R1 cuyo contenido en un momento dado es (R1) = 1000, expresado en hexadecimal. El computador tiene una memoria de 64K palabras de 16 bits. El contenido en hexadecimal de una zona de memoria consecutiva es el siguiente: (100F) = 273F, (1010) = 1012, (1011) = 3EC4, (1012) = 2F3E. En un momento dado la instrucción que va a ejecutarse utiliza un modo de direccionamiento indexado empleando el registro R1 para acceder a un operando. Si el valor del operando obtenido es 1012 teniendo en cuenta que el valor del CD de la instrucción es (CD) = 10 (también hexadecimal), ¿cuál es el modo de direccionamiento empleado?
Solución:
Indexado con predecremento
Indexado con posincremento
Indexado con preincremento
Preindexado
PROBLEMA
Diseñar una subrutina en ensamblador del M68000 que encuentre el número de veces que aparece un carácter dado en una cadena de caracteres ASCII de longitud desconocida. Los parámetros que recibe la subrutina son:
A0 : registro de direcciones que contiene la dirección del primer carácter de la cadena. La cadena termina en el carácter ASCII nulo.
D0 : carácter buscado.
La subrutina devuelve en el registro D1 el número de veces que el carácter está en la cadena.
Seguir el procedimiento indicado a continuación:
Realizar un análisis detallado del funcionamiento de la subrutina, indicando los tipos de instrucciones y modos de direccionamiento más adecuados para el problema planteado, así como los recursos necesarios (registros, memoria).
Programar en ensamblador del M68000 la subrutina pedida, comentando adecuadamente las sentencias utilizadas.