Sunteți pe pagina 1din 5

ARC, DRR, IMA, FCB 2010

Universidad de Sevilla Escuela Superior de Ingenieros Dpto. de Ingeniera de Sistemas y Automtica Camino de los Descubrimientos, s/n 41092 SEVILLA

1 Curso del Grado en Ing. de Tecnologas de Telecomunicacin Fundamentos de Computadores Curso 2011/12 Boletn n 3: Problemas hardware 68000
P1. Instrucciones de comprobacin Suponiendo que si se produce alguna excepcin, el resultado de la misma es terminar la ejecucin del programa, se pide: Indicar qu excepcin origina la finalizacin del siguiente programa escrito para el 68000. El valor de los registros d0 y d1 cuando acaba el programa. para los siguientes casos: a) X=50, Y=30 b) X=80, Y=30 c) X=300, Y=220 org $400600 clr.l d0 clr.l d1 move.b #40,d0 move.b #Y,d1 bucle add.b #1,d0 trapv chk.w #X,d0 sub.l #1,d1 chk.w #X,d1 divu.w d1,d2 bra bucle P2. Modo supervisor Explicar de manera descriptiva cmo se podra proteger (desde el punto de vista hardware) una zona de la memoria RAM de una placa basada en el procesador 68000 de Motorola de tal forma que solamente se pudiera acceder a ella en modo supervisor. P3. Modificacin mscara de interrupciones Se desea modificar el nivel de la mscara de interrupciones del 68000 haciendo uso de una interrupcin software. Concretamente se quiere que en el siguiente programa:
inicio clr.l d0 clr.l d1 TRAP #0 dc.w <N> move.w dato,d1 (*) ...

tras la ejecucin del TRAP #0, al llegar a la instruccin (*) la mscara tenga el nivel indicado por el nmero <N> (dicho nmero se supone entre 0 y 7). Se pide responder RAZONADAMENTE a las siguientes cuestiones: a) Describir detalladamente y por orden las operaciones que habra que codificar en la rutina de servicio asociada al TRAP #0 para conseguir el comportamiento que se describe. (no se pide el cdigo en ensamblador)

ARC, DRR, IMA, FCB 2010

b) Si antes de ejecutar el TRAP #0, el microprocesador se encuentra en modo usuario, habra que hacer algo adicional en la subrutina para lograr lo que pide el enunciado? c) Si durante la ejecucin de las instrucciones de la rutina asociada al TRAP #0 se produjera una excepcin de error de bus, se atendera? En caso afirmativo, indicar en qu momento se atendera. d) Y si se produjera una interrupcin hardware durante le ejecucin de la rutina asociada al TRAP #0, cambiara alguna de las respuestas del apartado anterior? P4. Interrupciones hardware Supngase un sistema basado en el microprocesador 68020 de Motorola al que se conecta un sensor ptico con nivel de prioridad 4 que est colocado en la entrada de un garaje. Asimismo, se dispone de la siguiente informacin: Inicialmente, la mscara de interrupciones del 68020 est a nivel 4 y se arranca en modo supervisor. El nmero de excepcin asociado al sensor ptico es el 65 y dicho dispositivo genera una interrupcin cuando detecta el paso de un vehculo. Contenido del registro de estado:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

T1

T0

I2

I1

I0

Tabla con nmeros de excepcin que pueden resultar de utilidad: Nmero de vector 2 8 33 34 Excepcin Error de bus Violacin de privilegio Instruccin TRAP #1 Instruccin TRAP #2

En estas condiciones, se ejecuta el siguiente programa:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 N COJMP fin inicio org bra equ equ ds.w move.w move.w movec.l movea.l move.w move.l move.w movea.l move.w move.l $400600 inicio 3 $4EF9 1 #0,fin #33,d2 VBR,a0 (a0,d2.w*4),a1 #COJMP,(a1)+ #rut1,(a1) #65,d2 (a0,d2.w*4),a1 #COJMP,(a1)+ #rut2,(a1) 16 17 18 19 20 21 22 23 24 25 27 28 29 bucle rut1 rut2 move.w andi.w move.w trap dc.w cmpi.w beq trap dc.w addi.l rte move.w rte SR,d1 #$DFFF,d1 d1,SR #1 N #0,fin bucle #11 0 #2,(2,a7) #1,fin

Se pide: a) Explicar brevemente de forma razonada qu ocurre al ejecutar el programa: b) Indicar qu operacin efectan las instrucciones de la 16 a la 18, y si su ejecucin podra generar alguna excepcin bajo ciertas condiciones. c) Explicar la utilidad de la instruccin 25 del programa: d) Codificar una rutina de excepcin para el trap #1 que modifique el nivel de prioridad de la mscara del 68020 y le asigne el valor del parmetro N. e) Si se utilizara sta rutina en lugar de la que aparece en la lnea 25 del programa, cambiara en algo la respuesta del apartado a)? En caso afirmativo, indicar de qu modo cambiara.

ARC, DRR, IMA, FCB 2010

f)

Supngase que hay otro dispositivo (adems del sensor ptico) con nmero de excepcin 66 y prioridad 6. Escribir las lneas de cdigo necesarias para asociarle tambin la rutina rut2. g) Una vez que se ha asociado la misma rutina a los dos dispositivos, explicar brevemente de qu modo habra que codificar la rutina rut2 para que solamente se asignara valor 1 a la variable fin cuando el sensor ptico solicitara una interrupcin (y no en caso de que la solicitase el otro dispositivo). P5. Supngase un sistema basado en el microprocesador 68020 de Motorola al que se conecta un pulsador con nivel de prioridad 4. Asimismo, se dispone de la siguiente informacin: Inicialmente el 68020 arranca en modo supervisor. El nmero de excepcin asociado al pulsador es el 65 y dicho dispositivo genera una interrupcin cuando es accionado. Contenido del registro de estado:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

T1

T0

I2

I1

I0

El nmero de vector de la excepcin Violacin de privilegio es el 8.

Se pide: a) Codificar una rutina de interrupcin para el pulsador, a partir de la direccin $400800, que cambie el modo del procesador. Es decir, si el procesador est en modo usuario debe pasar a modo supervisor y si est en modo supervisor debe pasar a usuario. La rutina NO PUEDE hacer uso de ninguna variable intermedia que indique el estado en que se encuentra el micro. b) Codificar una rutina de atencin a la excepcin de Violacin de privilegio, a partir de la direccin $400900, que muestre por pantalla la cadena Error: Violacion priv. en el momento de producirse la excepcin. Para ello puede hacer uso de la subrutina trap #15 / dc.w 7 del sistema (recordar que esta subrutina recibe en A0 la direccin de la cadena a imprimir por pantalla). c) Codificar un programa principal, a partir de la direccin $400600, que configure las excepciones de la siguiente forma. La configuracin del vector asociado a la rutina de interrupcin del pulsador debe realizarse siguiendo el mtodo visto en clase. La configuracin del vector asociado a la rutina de excepcin por Violacin de privilegio puede realizarse de la forma que crea adecuada. Una vez configuradas las interrupciones, el programa debe quedarse en un bucle infinito. P6. Supngase un sistema basado en el microprocesador 68020 de Motorola al que se conecta un sensor ptico con nivel de prioridad 4 que est colocado en la entrada de un garaje. Asimismo, se dispone de la siguiente informacin: Inicialmente, la mscara de interrupciones del 68020 est a nivel 4 y se arranca en modo supervisor. El nmero de excepcin asociado al sensor ptico es el 65 y dicho dispositivo genera una interrupcin cuando detecta el paso de un vehculo. Para limpiar las interrupciones del sensor ptico hay que leer la direccin $B00001 en tamao byte. Contenido del registro de estado:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

T1

T0

I2

I1

I0

Tabla con nmeros de excepcin que pueden resultar de utilidad:

ARC, DRR, IMA, FCB 2010

Nmero de vector 2 8 33 34

Excepcin Error de bus Violacin de privilegio Instruccin TRAP #1 Instruccin TRAP #2

En estas condiciones, se tiene el siguiente trozo de programa:


1 2 3 4 5 6 7 8 9 10 COJMP inicio buc org bra equ movec movea.l movea.l adda.l move.l cmpa.l bne $400600 inicio $4EF9 VBR,a0 #$400A00,a1 a1,a2 #1024,a2 (a0)+,(a1)+ a1,a2 buc 11 12 13 14 15 16 17 18 19 movea.l move.l movec move.w andi.w move.w andi.w ori.w move.w #$400A00,a1 #rut,(32,a1) A1,VBR SR,d0 #$DFFF,d0 d0,SR #$F8FF,d0 #$0200,d0 d0,SR

Se pide continuar el programa (sin modificar las instrucciones existentes) para que al ejecutarlo, se imprima por pantalla el mensaje Garaje completo cuando hayan pasado 20 vehculos. Para imprimir se pueden emplear las subrutinas del monitor. P7. Supngase un sistema basado en el microprocesador 68020 de Motorola al que se conecta un sensor ptico con nivel de prioridad 4 que est colocado en la entrada de un garaje. Asimismo, se dispone de la siguiente informacin: Inicialmente, la mscara de interrupciones del 68020 est a nivel 4 y se arranca en modo supervisor. El nmero de excepcin asociado al sensor ptico es el 65 y dicho dispositivo genera una interrupcin cuando detecta el paso de un vehculo. Contenido del registro de estado:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

T1

T0

I2

I1

I0

Tabla con nmeros de excepcin que pueden resultar de utilidad: Nmero de vector 2 8 33 34 Excepcin Error de bus Violacin de privilegio Instruccin TRAP #1 Instruccin TRAP #2

Se tiene la siguiente rutina de excepcin para el trap #1:


rut1 move.l d0,-(a7) move.l d1,-(a7) move.l a0,-(a7) move.l (14,a7),a0 move.w (a0),d0 lsl.w #8,d0 move.w (12,a7),d1 andi.w #%1111100011111111,d1 or.w d0,d1 move.w d1,(12,a7) adda.l #2,a0 move.l a0,(14,a7) movea.l (a7)+,a0 move.l (a7)+,d1 move.l (a7)+,d0 rte

Se pide: a) Explicar brevemente de forma razonada qu hace dicha rutina.

ARC, DRR, IMA, FCB 2010

b) Codificar un programa que sume uno a una variable de etiqueta num_vehiculos (de tamao word) cada vez que se detecte el paso de un vehculo. Si es necesario, se puede hacer uso de la subrutina rut1. P8. Se tiene un sistema basado en el 68EC020 con la siguiente configuracin del espacio de direcciones: $000000 $200000 $400000 RAM $800000 $900000 EPROM $C00000 $D00000 $F00000 NOTA: Se supone que todos los registros de datos estn inicialmente a 0 y que la ejecucin comienza en la direccin $400600. msg ini RAM Suponiendo que la CPU est en modo usuario y que las siguientes instrucciones (o trozos de cdigo) se cargan a partir de la direccin $400600, indicar si generaran excepciones, y en caso afirmativo, indicar cules: Trozos aislados de cdigo move.w $100001,d1 move.b d1,$100100 bra ini dc.b Hola,0 move.l $900001,d3 Excepcin (si procede)

ROM

move.w SR,d2 move.l d3,$A00001 data dc.l $FFFFFFFF dc.l $FFFFFFFF dc.l $FFFFFFFF dc.l $FFFFFFFF

move.w d3,SR move.l $200600,d0 addi.b #1,d1 trapv chk.w #20,d1 divu.w d2,d1

S-ar putea să vă placă și