Ciencia
Universidad de Sevilla Escuela Superior de Ingenieros Dpto. de Ingeniería de Sistemas y Automática Camino de los Descubrimientos, s/n 41092 SEVILLA
1º Curso del Grado en Ing. de Tecnologías de Telecomunicación Fundamentos de Computadores – Curso 2010/11 Boletín nº 2: Problemas Básicos de Motorola 68000
P1. Rutinas para el tratamiento de una pila Escribir lassubrutinas para el 68020, PUSH, POP, ADDP, MULP, DIVP, correspondientes, para la emulación de una máquina de pila. La pila se supone inicializada y utiliza el registro A6. Los operandos son todos de 16 bits, así mismo se considera que no existe nunca desbordamiento en las operaciones. Las transferencias con la pila se realizan a través del registro D0. PUSH POP ADDP MULP DIVP Almacena un elemento en lapila. Dicho elemento se halla en D0. Recupera un elemento de la pila y lo almacena en D0. El elemento es eliminado de la pila. Suma los dos elementos situados en la cima de la pila y devuelve el resultado en D0. Los dos elementos son eliminados de la pila. Multiplica los dos elementos situados en la cima de la pila y devuelve el resultado en D0. Los dos elementos son eliminados de la pila. Divideel elemento situado en la cima de la pila entre el elemento almacenado en la posición inmediata inferior y devuelve el resultado en D0. Los dos elementos son eliminados de la pila.
P2. Cálculo del elemento de una sucesión I Se tiene una sucesión numérica que viene descrita por la siguiente fórmula: F(n) = 0 5*F(n-1)+n Si n = 0 Si n > 0
Se pide: Un programa principal, donde se le pasa a larutina el término N, se llama a la rutina y se recupera el resultado de la pila, almacenándolo en la posición con etiqueta RES. Se suponen definidas las etiquetas N y RES, correspondientes al término a calcular y al resultado. Dichos elementos tendrán tamaño de 16 bits. Una rutina que recibe el parámetro N del programa principal y realiza el cálculo de F(N) según la fórmula indicada. El resultadodebe ser devuelto por la pila.
ARC, DRR, IMA, FCB 2010
P3. Detección de números primos El teorema de Wilson establece que un número N es primo si ((N-1)!+1) es divisible exactamente entre N, donde ! indica el factorial del número entre paréntesis. En una máquina motorola 68020 se tiene en la memoria una tabla de 10 números de 32 bits, todos positivos y mayores o iguales a 2. Elprimero de estos números es desconocido pero todos los que le siguen son iguales a su antecesor incrementados en uno. Así pues, si el primero es el 6, los siguientes elementos serán 7,8,9,10, … así hasta completar los 10 números de la tabla. Se pide: a) Realizar una función que tome un número entero de 32 por el registro D0 y devuelva su factorial en D0. b) Realizar un programa que tome la tabla quese describe en el enunciado, la cual se supone ya almacenada en memoria a partir de la etiqueta TABLA y sustituya cada elemento por un 1 o un 0 dependiendo de si el número es primo o no según el teorema de Wilson. Por eficiencia SÓLO se podrá utilizar la función desarrollada en el apartado a) para el primer número de la tabla. Para el resto de los números no se podrá utilizar dicha función para elcálculo del factorial. P4. Seguimiento de la ejecución de un programa I Dado el siguiente programa en ensamblador para el procesador 68020:
ETQ2
ETQ5
ETQ1
ETQ3
ETQ7
ETQ6
org
move.w
move.w
bsr
move.w
adda.l
bra
dc.w
movea.l
suba.l
move.w
add.w
move.w
move.l
rts
dc.w
trap
dc.w
$400600
#2,-‐(a7)
#7,-‐(a7)
ETQ1
(a7)+,ETQ5
#8,a7
ETQ6
0
(a7),a2
#6,a7
(10,a7),d0
(12,a7),d0
d0,(4,a7)
a2,(a7)
7
#15
0
Se pide: a) Explicar el funcionamiento del mismo, indicando cómo van...
Regístrate para leer el documento completo.