BOLETÍN EC3

Anuncio
(1o INGENIERÍA INFORMÁTICA)
ESTRUCTURA DE COMPUTADORES
BOLETÍN EC3 (07/08)
MICROPROCESADOR MC68000
Problema 1.- Considere la siguiente situación inicial, donde se indica en hexadecimal el contenido
de ciertos registros y direcciones de memoria:
Dirección
Contenido
Registro
Contenido
800
08
A0
0000 0802
801
03
A1
0000 0804
802
01
D0
0000 0002
803
00
D1
FFFF FFFF
Indique el valor que tendrá el registro D1 después de ejecutar la instrucción MOVE de forma independiente en cada uno de los casos siguientes:
a) MOVE.B D0,D1
b) MOVE.W (A0)+,D1
c) MOVE.L -(A1),D1
d) MOVE.B -3(A1,D0.W),D1
e) MOVE.L -2(A0),D1
Problema 2.- Un ordenador tiene las siguientes características:
- Memoria de 64 Kpalabras de 8 bits
- 8 registros internos de 16 bits
- Instrucciones de longitud fija de 32 bits con código de operación de 10 ó 13 bits. El C.O. indica
el modo de direccionamiento de los operandos.
- Las constantes se especifican con 8 bits.
Se quiere diseñar una instrucción de tipo MOVE Fuente,Destino utilizando distintos modos de
direccionamiento para especificar sus operandos. Indique, explicando las causas, para cuáles de los
siguientes casos no es posible diseñar la instrucción:
a) Fuente: directo a memoria
Destino: inmediato
b) Fuente: indirecto a registro con postincremento
Destino: directo a memoria
c) Fuente: directo a memoria
Destino: directo a memoria
d) Fuente: inmediato
Destino: directo a registro
Problema 3.- Para cada una de las siguientes instrucciones, obtenga el código máquina y describa
la operación que realiza. Indique también los registros internos y palabras de memoria que intervienen,
proponga para ellos unos valores iniciales concretos y determine qué valores alcanzarán finalmente.
(Si lo necesita, en todos los casos suponga que se inicia un ciclo de búsqueda con (PC)=$123456.)
a) MOVE.B $5678,$ABCDEF
b) MOVE.W $5678,$ABCDEF
c) MOVE.L $5678,$ABCDEF
d) MOVE.L A1,(A0)
e) MOVE.L (A1),(A0)+
f) MOVE.L -(A1),(A0)+
Problema 4.- Para cada una de las siguientes instrucciones, obtenga el código máquina y describa
la operación que realiza. Indique también los registros internos y palabras de memoria que intervienen,
proponga para ellos unos valores iniciales concretos y determine qué valores alcanzarán finalmente.
(Si lo necesita, en todos los casos suponga que se inicia un ciclo de búsqueda con (PC)=$123456.)
a) MOVE.B -(A1),D0
b) MOVE.B @43(A1),D0
c) MOVE.B #43,D0
d) MOVE.W @43(A1),D0
e) MOVE.B -15(PC),D0
f) MOVE.W -15(PC),D0
Problema 5.- Para cada una de las siguientes instrucciones, obtenga el código máquina y describa
la operación que realiza. Indique también los registros internos y palabras de memoria que intervienen,
proponga para ellos unos valores iniciales concretos y determine qué valores alcanzarán finalmente.
(Si lo necesita, en todos los casos suponga que se inicia un ciclo de búsqueda con (PC)=$123456.)
a) MOVE.W 26(A1),50(A0,D0.W)
b) MOVE.W 26(A1),-50(A0,D0.W)
c) MOVE.B 26(A1),50(A0,D0.W)
d) MOVE.B 26(A1),50(A0,D0.L)
e) MOVE.L 26(A1),50(A0,D0.L)
f) MOVE.L 26(A1),50(A0,D0.B)
Pág. 1
(1o INGENIERÍA INFORMÁTICA)
ESTRUCTURA DE COMPUTADORES
BOLETÍN EC3 (07/08)
MICROPROCESADOR MC68000
Problema 6.- Se desea mover la palabra larga de la dirección $000510 a la dirección $00BBCC. Indique las distintas formas de hacerlo con el MC68000 especificando, en casos concretos, los contenidos que se requieran.
Problema 7.- Identifique el formato, especifique el código máquina e indique la operación que realiza
cada una de las siguientes instrucciones:
a) MOVEQ #5,D2
b) EXG D3,A4
c) ADD.L D3,-30(A4,A0.W)
d) ADD.L -30(A4,A0.W),D3
Problema 8.- Repita el problema anterior para:
a) CLR.W $89AB¿y CLR.W $89AA?
c) BNE -$12
b) SUB.L (A3),D3
d) RTS
Problema 9.- Inicialmente, el contenido del registro D0 es 00000003. Indique cuál será su contenido
después de ejecutar la siguiente secuencia de instrucciones:
MOVE.L #$FFFF,$0F3A
MOVE.L D0,D1
MOVE.L #$0F3A,A0
MOVE.L (A0)+,D0
ADD.L D1,D0
Problema 10.-Partiendo de los valores iniciales que se dan a continuación, indique los valores que
tendrán las posiciones de memoria después de ejecutar la siguiente secuencia de instrucciones:
Registro
Valor
Dirección
Valor
D0
0000 0002
0000 0F3A 00
A0
0000 0F3B
0000 0F3B 00
A1
0000 0F3A
0000 0F3C 00
0000 0F3D 00
0000 0F3E 00
0000 0F3F 00
0000 0F40 00
0000 0F41 00
0000 0F42 00
MOVE.L #$0F3F,$0F3A
MOVE.B #2,(A1)
MOVE.B D0,4(A0)
MOVE.W $0F3C,3(A0,D0.W)
Problema 11.- Dados los siguientes valores iniciales de registros y memoria, indique los resultados
obtenidos tras ejecutar el siguiente fragmento de código:
Registro
Valor
Dirección
Valor
A0
0000 0004
0000 0008
1D
D2
0123 ABCD
0000 0009
1B
D3
000C 0002
0000 000A 1C
0000 000B 14
0000 000C 0C
0000 000D 0A
0000 000E 0B
0000 000F 03
MOVE.B #$1A,$B
MOVE.W $8,$C
MOVE.W D2,8(A0,D3.W)
Pág. 2
(1o INGENIERÍA INFORMÁTICA)
ESTRUCTURA DE COMPUTADORES
BOLETÍN EC3 (07/08)
MICROPROCESADOR MC68000
Problema 12.-Con las instrucciones del 68000 escriba el programa que implemente la instrucción de
alto nivel:
FOR i := ValorInicial TO ValorFinal DO
Cálculo1
Siguiente Instrucción
NOTA: Cálculo1 es una secuencia de operaciones cualesquiera que no es necesario programar. ValorInicial y ValorFinal son dos variables con los límites del bucle FOR.
Problema 13.-La tabla representa un trozo de la memoria de un MC68000. Si actualmente el microprocesador tiene (PC) = $2000 y va a comenzar un ciclo de búsqueda, indique qué operación realiza
hasta llegar al punto de BREAK. ¿Qué ocurriría si inicialmente el contenido de M($2018) = $1005? ¿Y
si M($201A) = $0064?
(PC)
→
MEM
$2000
$2002
$2004
$2006
$2008
$200A
$200C
4279
0000
2018
3039
0000
201A
D179
MEM
$200E
$2010
$2012
$2014
$2016
$2018
$201A
0000
2018
5340
66F6
4848
5050
0019
BREAK
Problema 14.-Indique los valores que tomarían los pines del MC68000 durante la ejecución de la instrucción MOVE.B $FFFF07,D1. El contenido de la posición de memoria $FFFF07 es $0A. Indique, además, qué pines activa el procesador y cuáles la memoria.
Problema 15.-Indique qué líneas activa el MC68000 al ejecutar la instrucción (se supone que la instrucción ya ha sido traída a la CPU) MOVE.W #7,$AF34. Idem para MOVE.B #7,D0.
Problema 16.-Cuando se inicializa el MC68000 hace lo siguiente: lee el valor de la entrada 0 de la
tabla de excepciones, lo guarda en el registro SSP (puntero de pila del supervisor), lee el valor de la
entrada 1 de la tabla de vectores de excepción, lo guarda en el PC y comienza a ejecutar instrucciones.
La situación inicial es la siguiente: el contenido del vector 0 es $FFFFFE, y el vector 1 apunta a
la dirección $000400, cuyo contenido ($3F3C0005) corresponde al código de la instrucción MOVE.W
#5,-(SP). Indique los distintos valores que irán tomando en cada ciclo de acceso a memoria las líneas
del bus de direcciones, el bus de datos y la señal R/W del MC68000 desde que se pulsa el botón de
RESET hasta que termina de ejecutarse dicha instrucción.
Problema 17.-Determinado procesador ejecuta una instrucción cada dos microsegundos. Se dispone, además, de un dispositivo que envía 1000 valores de tamaño byte con una frecuencia determinada.
El procesador atiende los datos mediante interrupciones, siendo la rutina de tratamiento de interrupción
la siguiente:
Rut
MOVE.B Reg_Dato,(A2)+
CMPA.L #$40000,A2
BNE
Sig
MOVE.B #4,Reg_Control*Inhibe int. del disp.
Sig
RTE
Pág. 3
(1o INGENIERÍA INFORMÁTICA)
ESTRUCTURA DE COMPUTADORES
BOLETÍN EC3 (07/08)
MICROPROCESADOR MC68000
Indique cada cuántos microsegundos puede enviar un octeto el dispositivo sin que se pierda ninguno.
NOTA: Se supone despreciable el tiempo que el procesador necesita para guardar el contador de programa, el registro de
estado y para obtener el vector de interrupción.
Problema 18.-A continuación se indican las acciones que realiza un procesador MC68000 cuando recibe y acepta una interrupción vectorizada. Indicar el orden correcto de dichas acciones.
a) Lee de memoria la dirección de comienzo de la rutina
b) Compara el nivel de interrupción que ha llegado con el nivel de prioridad del proceso actual
c) Recibe el número de vector de interrupción enviado por el dispositivo
d) Termina la ejecución de la instrucción de lenguaje máquina en curso
e) Activa las líneas adecuadas para indicar al dispositivo que se ha aceptado la interrupción
Problema 19.-Indique en qué momento de la ejecución de una instrucción de lenguaje máquina el
procesador puede atender:
a) Una excepción
b) Una interrupción
c) Una petición de bus
Problema 20.- En una posición de memoria $DATO existe un número binario entero postivo, N. Se
pretende obtener el valor SUM = N + (N-1) + (N-2) + ... + 2 + 1 y almacenarlo en la palabra de memoria $SUMA.
a) Obtenga una subrutina en ensamblador del 68000 si los datos son de tamaño palabra, suponiendo que no existe desbordamiento. Escriba el código máquina para ese programa suponiendo que
la primera palabra de instrucción (OW) está en $2000.
b) Repita si los datos son de tamaño byte.
c) Repita si los datos son de tamaño gran palabra.
Problema 21.-Realice un programa que permita trasponer una matriz cuadrada de dimensión 5. Sus
componentes son tamaño palabra (W) y la forma de almacenamiento es la mostrada en la figura.
a11
a12
a13
a14
a15
a21
a22
a23
a24
a25
a31
a32
a33
a34
a35
a41
a42
a43
a44
a45
a51
a52
a53
a54
a55
a11 = [M($A)]
a12 = [M($A + 2)]
a13 = [M($A + 4)]
a14 = [M($A + 6)]
a15 = [M($A + 8)]
a21 = [M($A + 1010)]
a22 = [M($A + 1210)]
.
.
.
Problema 22.-Realice una subrutina para sumar dos vectores de 10 números enteros de 32 bits que
se almacenan en posiciones consecutivas de memoria. La dirección de memoria en que se encuentra
el primero de ellos es el contenido del registro de direcciones A1 y la del segundo está en A2. Se cumple que (A1) + 10 x 4 < (A2). Almacene el resultado a partir de A3.
Problema 23.-Se tiene un ordenador con procesador MC68000 conectado a seis pastillas de memoria RAM (RAM0, RAM1, ...., RAM5) de 8Kx8 con señal de selección activa en bajo y cuyas funciones
de selección se dan a continuación:
RAM0: A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14 + AS + UDS
RAM1: A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14 + AS + LDS
Pág. 4
(1o INGENIERÍA INFORMÁTICA)
ESTRUCTURA DE COMPUTADORES
BOLETÍN EC3 (07/08)
MICROPROCESADOR MC68000
RAM2: A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14 + AS + UDS
RAM3: A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14 + AS + LDS
RAM4: A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14 + AS + UDS
RAM5: A23 + A22 + A21 + A20 + A19 + A18 + A17 + A16 + A15 + A14 + AS + LDS
a) Dibuje el mapa de memoria de este ordenador.
b) A partir de la dirección de memoria $020354 se tiene cargado el siguiente programa. Indique
el contenido de PC y a qué pastillas de memoria se accede al ejecutar cada una de las instrucciones
del programa:
$020354
MOVE.B #02,D0
MOVE.B $702,D1
ADD.W D0,D1
MOVE.W D1,$102FF0
. . . (siguiente instrucción)
c) Si se quiere escribir el dato $ABCD de forma que en todo o en parte ocupe la palabra $1234
de la RAM3 , indique la sintaxis y el código máquina de la instrucción MOVE que debemos utilizar, así
como el resultado final de la instrucción
Problema 24.-Cierta máquina dispone de un procesador MC68000. Por razones en las que no vamos
a entrar, se desea que disponga de 16 Kbytes de memoria a partir de la dirección $F800 situados en
direcciones múltiplos de 4. Para ello, se dispone de una pastilla de memoria de 16Kx8 con señal de
selección activa en bajo. Indique la función de selección correspondiente a dicha pastilla realizando decodificación total.
Problema 25.-Se tiene un procesador con bus de direcciones de 16 bits (A15, A14, A13, ....,A1, A0)
y bus de datos de 8 bits (D7, D6, ....., D1, D0) al que se desean conectar dos pastillas de memoria RAM.
Una de las pastillas (RAM1) es de 4Kx8 y cubrirá las direcciones $0000...$0FFF; la RAM2 es de 8Kx8
y cubrirá las direcciones $E000...$FFFF. Ambas pastillas de memoria tienen entrada de selección activa en bajo. Escriba la función de selección para las pastillas en los siguientes casos:
a) Utilizando lógica de decodificación total
b) Utilizando lógica de decodificación parcial
Problema 26.-a) Obtenga el siguiente código máquina e indique qué registros se ven afectados y
cómo para las siguientes instrucciones:
MOVE.B -15(PC),(A6)+
MOVE.L -$1234,-(A6)
b) Se desea mover la palabra larga de la dirección $000510 a la dirección $00BBCC. Indique las distintas formas de hacerlo con el MC68000 especificando, en casos concretos, los contenidos que se
requieran.
c) Indique el orden y los valores que tomarían los pines del MC68000 durante la ejecución de la instrucción MOVE.B $FFFF07,D1. El contenido de la posición de memoria $FFFF07 es $0A. Indique, además, qué pines activa el procesador y cuáles la memoria.
d) (Este apartado fue el problema 12 de este boletín).
Problema 27.-En el contexto del MC68000 conteste justificadamente las siguientes cuestiones (asuma que inicialmente (A3)=$003366CC y (PC)=$00448800)):
1. Para un direccionamiento indirecto de una palabra destino larga, indique cuál es el operando
involucrado y el valor final de A3 si la sintaxis de la instrucción es: a) -44(A3); b) (A3)+; c) (A3);
d) -(A3); e) 4(A3).
Pág. 5
(1o INGENIERÍA INFORMÁTICA)
ESTRUCTURA DE COMPUTADORES
BOLETÍN EC3 (07/08)
MICROPROCESADOR MC68000
2. Indique el código objeto, explique la operación y ponga un ejemplo con datos concretos para cada
una de las siguientes instrucciones:
MOVE.L $0042(PC),D3
MOVE.W $0042(PC),D3
MOVE.L -$0042(PC),D3
MOVE.L $10(PC,A3.L),D3
MOVE.W$10(PC,A3.L),D3
MOVE.L -$10(PC,A3.L),D3
3. Proponga, si es posible, una instrucción MOVE.B que sólo ocupe 1 palabra de código máquina.
Repita para 2, 3, 4, 5 y 6 palabras de instrucción.
Problema 28.-Se dispone de dispositivos RAMs y ROMs con 15 líneas de dirección, 8 bits de datos,
una señal de “Chip Enable” activa en baja (CE) y otra de “Output Enable” también activa en baja (OE).
Las RAMs también poseen una señal R/W. Se desea montar un sistema de memoria para que un
68000 pueda acceder a posiciones ROM en las direcciones $X00000 a $X0FFFF y a RAM en $X10000
a $X1FFFF.
a) Describa formalmente los dispositivos y el mapa de memoria.
b) Diseñe el circuito de memoria (especificando adecuadamente las conexiones entre el microprocesador y las memorias).
c) Indique qué ocurre y ponga un ejemplo concreto con las siguientes instrucciones MOVE:
MOVE.B $0023FA, $0189FA
MOVE.L $0023FA, $0189FA
MOVE.B $0023FA, $0189FB
MOVE.L $0023FA, $0189FB
MOVE.W $30ECEC, $F1F1F0
MOVE.W $03ECEC, $1FF1F0.
Problema 29.-Se desea construir un sistema basado en el 68000 con el siguiente mapa de memoria:
· 32KB de EPROM a partir de la posición $200000 usando pastillas de 16Kx8.
· 128KB de RAM a partir de la posición $300000 usando pastillas de 32Kx8.
a) Determine una expresión algebráica para las entradas de selección de chip (CS) de cada
pastilla.
b) Si desea trasvasar los datos almacenados en la mitad primera de la parte EPROM a la mitad
última de la parte RAM mediante instrucciones MOVE.L (A1)+,(A2)+, ¿qué valores iniciales
pondría en A1 y en A2?
c) Si esos mismos datos los quiere trasvasar al mismo sitio pero en el orden contrario (i.e., el
dato de la primera posición EPROM a la última posición RAM, el de la segunda posición
EPROM a la penúltima posición RAM, etc), ¿que instrucción utilizaría y que valores iniciales
tendría que poner?
Problema 30.-Se dispone de memorias RAMs de 16Kx8 y 8Kx8 y de ROMs de 8Kx8, todas con un
solo bus de datos de 8 bits y selección de chip activa en L. Los dispositivos de memoria generan una
señal de reconocimiento de datos que se activa cuando han completado la operación de acceso al dato.
a) Para un μP de AB[16] y DB[8], construya una unidad de memoria principal con memoria novolátil de 8KBytes en las direcciones mayores y 40KBytes de memoria de lectura y escritura
en las posiciones más bajas. Dibuje las conexiones de todos los buses (AB, DB y CB).
Indique, además:
1. Todas las direcciones lógicas que hay que escribir en el AB del μP para acceder a la palabra
de dirección física “1 1 1 1 1 0 ... 0”en cada uno de los dispositivos de memoria utilizados
2. Las palabras físicas a las que se accede con las direcciones lógicas AB = $5050, $8765 y
$E043.
b) Transforme el diseño de la memoria principal anterior para que lo sea de un MC68000.
Además,
1. incluya un circuito que genere la señal DTACK
2. otro que informe (activando BERR) cuándo hay un error de acceso al bus por direccionamiento fuera de memoria física o por escritura en ROM.
Pág. 6
Descargar