UNIVERSIDAD DE SEVILLA FACULTAD DE INFORMÁTICA Y ESTADÍSTICA PRÁCTICA: SIMULACIÓN DEL MC68000 (II) Estructura de Computadores (Ingeniería Técnica en Informática de Sistemas) DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA 1. OBJETIVOS Esta práctica continua la tarea iniciada en la práctica anterior y persigue nuevamente dos objetivos principales: la familiarización con el emulador BSVC del microprocesador MC68000 y profundizar en el manejo de su conjunto de instrucciones. Este emulador es un proyecto desarrrollado en la Universidad de Carolina del Norte por Bradford W. Mott. 2. ESTUDIO EXPERIMENTAL Ejercicio 1. Edite el programa que a continuación se detalla y almacénelo en un fichero con la extensión habitual (.s): Matriz1 Matriz2 MatrizResul ORG DC.L $4 $1000 ORG DC.W DC.W DS.W $500 1,2,3,4 2,4,6,8 4 ORG ANDI CLR.L MOVEA.L MOVEA.L MOVEA.L MOVE.W ADD.W MOVE.W ADDQ MOVE.W ADD.W MOVE.W ADDQ MOVE.W ADD.W MOVE.W ADDQ MOVE.W ADD.W MOVE.W BREAK $1000 #$0700,SR D7 #Matriz1,A0 #Matriz2,A1 #MatrizResul,A2 (A0,D7.W),D0 (A1,D7.W),D0 D0,(A2,D7.W) #2,D7 (A0,D7.W),D0 (A1,D7.W),D0 D0,(A2,D7.W) #2,D7 (A0,D7.W),D0 (A1,D7.W),D0 D0,(A2,D7.W) #2,D7 (A0,D7.W),D0 (A1,D7.W),D0 D0,(A2,D7.W) a) Ensámblelo, cárguelo en el emulador BSVC y ejecútelo. b) ¿Cuánto valen las etiquetas Matriz1, Matriz2 y MatrizResul? c) ¿Qué operación realiza ADD.W (A1,D7.W),D0? d) ¿Qué tipos de direccionamiento hay? e) ¿Qué función realiza el código? f) Reescriba el programa utilizando un bucle que elimine la repetición que se aprecia en el código. Ejercicio 2. Considere el programa del MC68000 listado abajo. ET ORG DC.L $4 $1000 ORG DC.W ORG DC.W ORG DS.L $400 128, 64, $4567,435, $0001,0, 4,81,99,$ffff $500 2, 16, $32ab, $0001,10, 0,4,81,99,$ffff $7D8 10 ORG MOVE.B MOVEA.L MOVEA.L MOVEA.L MOVE.W MULU MOVE.L SUBQ.B BNE BREAK $1000 #10,D0 #$400,A1 #$500,A2 #$800,A3 (A1)+,D1 (A2)+,D1 D1,-(A3) #1,D0 ET a) Escríbalo, ensámblelo y cárguelo para su ejecución en el emulador BSVC. b) Determine el contenido de los registros PC, A1, A2, A3, D0 y D1 durante el transcurso de las primeras 12 instrucciones ejecutadas. c) ¿Cuál es el valor final de PC? d) ¿Qué sucedería si la instrucción MULU fuera sustituida por MULS? e) ¿Qué función realiza el programa? Ejercicio 3. Considere el siguiente programa escrito en ensamblador del 68000 ORG VECTOR_1 DC.W ORG VECTOR_2 DC.W ORG VECTOR_R DS.W ORG PRINCIPAL MOVEA.L MOVEA,L MOVEA.L BUCLE MOVE.W ADD.W BVS MULS MOVE.L SEGUIR CMPA.W BNE BREAK OVERSUMA MOVE.L BRA $1000 -1,2,30000,-4,5,-6,7,-8,9,-10 $2000 1001,-1002,30000,1004,5,6,7,8,9,10 $3000 10 $4000 #VECTOR_1,A1 #VECTOR_2,A2 VECTOR_R,A3 (A1)+,D0 (A2),D0 OVERS D0, D0 D0,(A3)+ #$1014,A1 BUCLE #$FFFFFFFFF,(A3)+ SEGUIR a) Introduzca este programa en un fichero de texto para que pueda servir como entrada al emulador del 68000. b) Compílelo resolviendo los errores de compilación que encuentre. c) Analice el programa mostrando la función que realiza. d) Indique cual es el resultado del programa tras su ejecución.