Sei sulla pagina 1di 5

SISTEMAS DIGITALES Prctica 1.

Simulacin del MC68000 2 de Ingeniero Tcnico Industrial en Electrnica Industrial Departamento de Tecnologa Electrnica Universidad de Sevilla
Revisin 1.0, 28 de octubre de 2002

Sistemas Digitales. Prctica 1

NDICE

1.- Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2.- Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3.- Estudio terico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4.- Estudio prctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5.- Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

ii

Practica1.wpd (28-10-2002)

Sistemas Digitales. Prctica 1

1.- Introduccin
IDE68K es un entorno integrado de desarrollo de aplicaciones (Integrated Development Environment) para el procesador MC68000 de Motorola. Permite, entre otras opciones, la escritura de cdigo ensamblador del procesador, el ensamblado, enlazado de programas y simular su ejecucin. Un entorno de ventanas muy cmodo e intuitivo permite ver en todo momento el contenido de los registros del microprocesador, as como la memoria o el propio cdigo ensamblador. Este programa se distribuye bajo el concepto shareware, que permite la copia libre del programa para su evaluacin. Es completamente operativo, aunque recuerda peridicamente al usuario de la necesidad de registrarse. En el la opcin Help/About/How to register del programa, se puede encontrar ms informacin sobre este extremo.

2.- Objetivos
C Familiarizarse con el entorno de desarrollo IDE68K. C Profundizar en el manejo del conjunto de instrucciones del MC68000 C Comprender la forma en la que el procesador ejecuta los programas y preveer su comportamiento.

3.- Estudio terico


En primer lugar veremos las directivas bsicas del ensamblador con la ayuda del programa p1.ej01.asm disponible en la pgina web de la asignatura (ver apartado 5).
*************************************************************************** * p1.ej01 * * Prctica 1. Ejemplo 1. *************************************************************************** org dc.l dc.l org clr.w move.w add.w sub.w bne stop ds.w dc.w $0 $8000 START $2000 SUM #COUNT,D0 D0,SUM #1,D0 LOOP #$2000 1 25

; Valor inicial del puntero de pila ; Vector de RESET

START LOOP

SUM COUNT

Cada lnea corresponde con una instruccin ensamblador. En ellas se pueden distinguir cuatro
Practica1.wpd (28-10-2002)

Sistemas Digitales. Prctica 1

columnas o campos. El primero es el campo de etiqueta y es opcional. Cada etiqueta es un conjunto de letras, nmeros y ciertos smbolos. Siempre deben empezar con una letra y la longitud est limitada a 32 caracteres. No se distingue entre maysculas y minsculas. Debe comenzar en la columna 1, es decir, no ir precedida de espacios o tabuladores o, en caso contrario ir seguida de dos puntos :. El segundo campo corresponde con el nemnico de la instruccin. Si existe la etiqueta, debe ir separado de ella por al menos un espacio en blanco o tabulador. Si no hay etiqueta debe escribirse ms all de la columna 1. En el tercer campo se escriben los operandos separados por comas. Finalmente, el cuarto campo, tambin opcional se usa para escribir comentarios, que deben ir precedidos por el carcter punto y coma ;. Existen una serie de nemnicos que no forman parte del juego de instrucciones del procesador y que se usan para instruir al programa ensamblador. Se llaman directivas del ensamblador. ORG se usa par indicar a partir de qu direccin de memoria colocar el cdigo o datos que siguen. DC sirve para inicializar a un valor concreto una parte de la memoria, y DS permite reservar zonas de memoria. Pueden ir seguidas de un modificador de longitud de datos: .B para byte (8 bits), .W para word (16 bits) y .L para long word (32 bits). Una lnea que comience con * o con ; se considera un comentario y no es procesada por el ensamblador. Las tres primeras lneas de cdigo del ejemplo (esto es, obviando las lneas de comentario) son muy comunes a los programas del 68000. Sirven para inicializar el vector de RESET del procesador que se encuentra a partir de la direccin 0 de memoria. La primera palabra larga se usa para inicializar el SSP, y la siguiente es la direccin de comienzo del programa. El programa en s mismo comienza en la direccin $2000 (ORG $2000). De esta forma se evita escribir cdigo en la zona reservadas para los vectores de las excepciones ($0 a $3FF)

4.- Estudio prctico


C Ejecute el IDE68K. Para ello pulse Inicio->Programas->ide68k->68000 IDE. C Cargue el programa de ejemplo p1.ej01.asm. Para ello pulse File->Open. Seleccione el fichero en el cuadro de dilogo que aparece. C Ensamble el programa con Project->Build all. C Ejecute el simulador con Run->Visual simulator. En el simulador se puede ver una ventana con los registros del microprocesador (D0-D7, A0A7, SR, PC y las banderas del CCR por separado (C, V, Z, N y X). La ventana superior derecha presenta un volcado de memoria y la inferior el cdigo fuente ensamblador. El programa se puede ejecutar paso a paso (Execute->Single step), instruccin a instruccin de manera lenta (Execute->Slow Mode) y sin pausas (Execute->Fast mode). La diferencia entre estos dos ltimos radica que en el modo lento, el IDE se actualiza despus de cada instruccin y deja algo de tiempo para ver los cambios. En el rpido el programa se simula a velocidad mxima y se actualiza el IDE al final de la ejecucin. C Ejecute el programa paso a paso y compruebe el contenido de los registros. Qu le 2
Practica1.wpd (28-10-2002)

Sistemas Digitales. Prctica 1

pasa al valor de D0 en cada paso por el bucle? Qu debe ocurrir para que la instruccin bne LOOP no realice el salto? C Qu hace el programa de ejemplo? C Escriba este otro programa y gurdelo en el directorio asignado de prcticas con el nombre p1.ej02.asm:
*************************************************************************** * p1.ej02 * * Prctica 1. Ejemplo 2. *************************************************************************** org dc.l dc.l org dc.b dc.b ds.b andi move.b move.b add move.b stop $0 $8000 START $400 10 6 1 #$700, SR VAL1,D0 VAL2,D1 D1,D0 D0,RESUL #$2000

; Valor inicial del puntero de pila ; Vector de RESET

VAL1 VAL2 RESUL START

C Ensmblelo. Qu errores hay? Intente corregirlos. Intente predecir el resultado y comprubelo tras la simulacin. C Realice un programa que calcule el factorial de un nmero de 8 bits almacenado a partir de la posicin NUMERO y almacene el resultado a partir de la posicin RESUL. Qu tamao debe tener el objeto almacenado en esta direccin? NOTA: Use la instruccin de multiplicacin del 68000, MULS.

5.- Referencias
http://www.dte.us.es/tec_ind/electron/sd/ Pgina web de la asignatura. Desde ella se puede descargar todo el material necesario para la prctica (IDE68K, ejemplos, documentacin,...)

Practica1.wpd (28-10-2002)

Potrebbero piacerti anche