Practica 0 SEGUNDO parcial

18
Grado en Ingeniería informática – Modalidad Virtual FUNDAMENTOS DE COMPUTADORES PRÁCTICA 1 INTRODUCCIÓN A LA PROGRAMACION EN ENSAMBLADOR EQUIPO ENTRENADOR PRÁCTICA DE LABORATORIO DE FUNDAMENTOS DE COMPUTADORES OBJETIVOS: Conocimiento de un equipo didáctico de un microprocesador sencillo. Conocer y manejar el entorno de programación en ensamblador. Aprender los conceptos relacionados con la edición, compilado, enlazado y ejecución de programas en ensamblador. Conocer los pasos que tendrán que realizarse en una simulación de microprocesador. CONTENIDO: 1. INTRODUCCIÓN 2. MATERIALES 3. PROCESO PRÁCTICAS: 1. Ciclo completo de programación. PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS 1

Transcript of Practica 0 SEGUNDO parcial

Grado en Ingeniería informática – Modalidad Virtual

FUNDAMENTOS DE COMPUTADORES PRÁCTICA 1

INTRODUCCIÓN A LA PROGRAMACION EN ENSAMBLADOR EQUIPO ENTRENADOR

PRÁCTICA DE LABORATORIO DE FUNDAMENTOS DE COMPUTADORES

OBJETIVOS:

Conocimiento de un equipo didáctico de un microprocesador sencillo.

Conocer y manejar el entorno de programación en ensamblador.

Aprender los conceptos relacionados con la edición, compilado, enlazado y ejecución de

programas en ensamblador.

Conocer los pasos que tendrán que realizarse en una simulación de microprocesador.

CONTENIDO:

1. INTRODUCCIÓN 2. MATERIALES 3. PROCESO

PRÁCTICAS:

1. Ciclo completo de programación.

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

1

Grado en Ingeniería informática – Modalidad Virtual

Rev. 2015

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 2

Grado en Ingeniería informática – Modalidad Virtual

INTRODUCCIÓN:

Esta práctica pretende iniciarnos en la programación en lenguaje ensamblador para conocer mejor la estructura y funcionamiento de un microprocesador. El entorno didáctico del microprocesador 8085, que a partir de ahora llamaremos equipo entrenador, se verá complementado en el laboratorio virtual con el manejo de simuladores que nos permitirán comprobar el funcionamiento de los programas sin ningún hardware específico.

MATERIALES

Para las prácticas contaremos con la comparación con el equipo didáctico real que incluye: • Hardware

Microprocesador 8085, entorno equipo entrenador PC Cable de conexión

• Software Editor de textos ‘EDIT’. Ensamblador ‘X8085’ Enlazador ‘LINK’ Programa de comunicaciones emulador de terminal DDT85 Programa monitor (en la EPROM del equipo)

Equipo entrenador. Podemos distinguir las siguientes partes: CPU 8085 Puerto paralelo del sistema 8155 Puerto paralelo del usuario 8255 Control del teclado y display 8279 Puerto serie USART (transmisor-receptor asíncrono universal) 8251 Memoria: 4 K EPROM 2732 dirección: 0000H a 0FFFh 2 K RAM 4802 dirección: 1000H a 17FFh 2 K RAM 4802 dirección: 1800H a 1FFFh

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

3

Grado en Ingeniería informática – Modalidad Virtual

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 4

Grado en Ingeniería informática – Modalidad Virtual

ARQUITECTURA DEL MICROPROCESADOR 8085

IO/M

GND

5V

RST OUT RST IN

HLDA HLD S1

S0

RDY

ALE WR RD

CLK OUT

X2

ALU

TRAP RST 7.5

RST 6.5 RST 5.5

INTR

Bus de datos interno de 8 bits

B C D E H L

A

UNIDAD DE CONTROL

R. de Instrucción

8 bits

SP PC

Buffer de direcciones

8 bits (A8-A15)

Buffer de direcciones/datos 8 bits (AD0-AD7)

Bus externo de 16 bits

R. de Flags

E/S serie Control de Interrup.

SID SOD INTR X1

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

5

Grado en Ingeniería informática – Modalidad Virtual

PROCESO

EDICION DEL PROGRAMA EN ENSAMBLADOR

Desde una ventana DOS editaremos el programa que llamaremos PROB.ASM

Con las opciones de archivo lo guardaremos en el directorio de trabajo que por defecto es el c:\8085 donde se encuentran los programas ejecutables que utilizaremos. Las instrucciones utilizadas son los Nemónicos del ensamblador y están relacionadas directamente con el código que el microprocesador 8085 entiende Por cada una de las líneas estamos introduciendo realmente 4 campos:

1º etiqueta, opcional, de 1 a 5 caracteres finalizados en 2 puntos. 2º código de operación 3º operandos depende del campo anterior pueden no existir o ser mas de uno. 4º campo de comentario, opcional, termina en punto y coma

El programa debe de estar escrito enteramente en mayúsculas para evitar confusiones entre etiquetas y errores en el resto de los procesos. Existe una utilidad llamada ‘CASE’ que pasa a mayúsculas todo un fichero.

ENSAMBLADO

El siguiente paso es ensamblar el programa editado, para ello ejecutamos el programa X8085 y respondemos a las preguntas que se nos hace en cada línea de detención. Cuando pulsemos la tecla ‘RETURN’ se tomará la respuesta por defecto.

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 6

Grado en Ingeniería informática – Modalidad Virtual

El resultado son una serie de ficheros: PROB.LST (editar el fichero .LST para ver su contenido) PROB.OBJ Realizar un listado de los ficheros para comprobar su tamaño y existencia.

Cometer intencionadamente un error ortográfico para comprobar como el X8085 notifica los errores.

ENLAZADO DE LOS FICHEROS

Un programa puede crearse realizando llamadas a otros módulos que ya se encuentran ensamblados, es decir en formato OBJ y de los cuales ni siquiera tengamos los ficheros ‘FUENTE’ en ensamblador. El proceso que reúne todos los ficheros que componen un programa completo se denomina enlazado. En nuestro entorno esta función la realiza el programa LINK2

Por defecto nuevamente dejará los ficheros de salida con el mismo nombre pero con las extensiones .HEX y .SYM No se especifica ningún OFFSET ya que hemos indicado la dirección de comienzo exactamente donde queremos que quede.

Toma por defecto la extensión ASM

Por defecto le dará el mismo nombre y creará la extensión correspondiente

D ↵ significa Disco Duro

Tomará por defecto el fichero PROB.OBJ

No hay más ficheros con los que enlazar

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

7

Grado en Ingeniería informática – Modalidad Virtual

Incluir un OFFSET y comprobar lo que se desplaza el programa.

UTILIZACIÓN DEL PC COMO TERMINAL DE CONSOLA.

Lo primero que tiene que quedar claro es que aunque exista una comunicación entre el equipo entrenador y el PC todas las acciones se desarrollarán y las realizará el microprocesador 8085. Antes de encender el equipo entrenador debemos asegurarnos que se encuentra en modo consola (teclado local sin uso) comprobando la posición del interruptor correspondiente. En primer lugar definiremos por cual de los puertos de comunicación serie disponibles en el PC será el utilizado para comunicarnos con el equipo entrenador Una vez establecida la comunicación nos aparece un guión en la parte izquierda del visualizador y la leyenda 8085 tanto en la pantalla del ordenador como en el entrenador. Como acabamos de encender el entrenador no hay ningún programa cargado en la memoria, lo primero que haremos será aprender a transferir el programa desde el PC: Esto nos evita tener que introducirlo línea por línea en código máquina. El comando que efectúa la transferencia es ‘L’ de load o lectura.

Lo siguiente son comandos de ejecución ‘G’, comando Go. G1000 significa que queremos que el microprocesador ejecute las instrucciones que tiene almacenadas desde la dirección 1000H ‘D’ 1200,1203 indica que queremos visualizar el contenido de la memoria del equipo entrenador desde la posición 1200H hasta la 1203 que son las que modificaba el programa. El comando ‘.H’ es el comando de salida del programa DDT85

Cargara el fichero PROB.HEX y nos pregunta si hay que efectuar offset

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 8

Grado en Ingeniería informática – Modalidad Virtual

Una vez que hemos salido del programa terminal realizamos la desconexión entre el PC y el equipo entrenador. El estado actual es el siguiente: No existe comunicación entre el PC y el equipo entrenador. El programa se encuentra cargado en memoria y ya ha sido ejecutado una vez, con lo que las posiciones de memoria 1200 y 1201 han sido puestas a un valor conocido. El microprocesador se encuentra en un estado de parada El PC ya no actúa como la consola del equipo entrenador Cambiamos el estado del interruptor a la posición ‘TEC’ para poder utilizar el teclado local y tomar el control. Pulsamos la tecla INICIO Para visualizar las posiciones de memoria utilizando el teclado pulsamos la tecla S.ME ANT Cuando la pantalla está apagada podemos introducir el número en hexadecimal de la posición a visualizar 1200, con lo que se nos visualizará 1200 05, es decir la dirección y su contenido. Después de introducir la dirección y visualizar el contenido pulsando la tecla POST visualizaremos la posición posterior y si pulsamos S. ME ANT al anterior. Probar a pulsar varias veces ambas teclas. Si ahora queremos visualizar el programa contenido en la dirección 1000H deberemos de proceder de modo similar.

Comprobar que el contenido de las direcciones coincide con el fichero PROB.LST que podemos visualizar simultáneamente en el PC

BORRAR los valores de las posiciones de memoria 1200 y 1201 Si cuando estamos visualizando una posición de memoria, como hemos visto que hacemos al introducir S ME ANT y la dirección, pulsamos en el teclado numérico estaremos modificando el contenido de dicha posición. Ejecutar nuevamente el programa y comprobar que el contenido de las posiciones de memoria ha sido cambiado nuevamente a 03 y 05.

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

9

Grado en Ingeniería informática – Modalidad Virtual

LISTA DE COMANDOS DEL MONITOR (DDT85)

Estos son los comandos que se pueden ejecutar desde el PC en modo consola [funcionamiento remoto] D Visualización de una posición de la memoria del equipo entrenador .D (dir baja),(dir alta) CR G Mandar ejecutar al 8085 un programa almacenado en la memoria .G (dir comienzo),(dir 1er punto de ruptura) ,(dir 2º punto de ruptura) CR N Ejecución paso a paso .N (no hace falta CR) I Insertar en la memoria del equipo entrenador .I (dirección) CR (Datos) ESC M Mover memoria .M (dir. Baja) . (dir. Alta) . (dir destino) CR S Sustituir en la memoria .S (dirección) espacio -> dato -> escritura -> espacio -> lectura -> CR -> Salida X Examinar registros .X (identificador de registro) -> CR visualiza todos -> Reg Registros: A, B,C,D,E,F,H,L,M (memo), P (PC), S (SP) L Carga un programa del ordenador al equipo entrenador .L NOMBRE(.HEX) CR OFFSET (Valor) H Fin de la comunicación entre PC y equipo entrenador .H

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 10

Grado en Ingeniería informática – Modalidad Virtual

PRACTICAS:

1.1 PROCESO COMPLETO EN MODO REMOTO

Realizar el proceso completo desde la edición pero introduciendo los valores 09 y 10. Borrar los valores de la posición 1200 y 1201 introduciendo en su lugar valores 0. Ejecutar en modo local el programa. Visualizar las posiciones 1200 y 1201. Probar los distintos comandos del monitor realzada la conexión PC-micro2000.

EJERCICIO PROPUESTO (opcional):

Modificar directamente el programa en el equipo entrenador para que al ser ejecutado escriba los valores 77 y 88 en las posiciones de memoria y ejecutarlo repetir los pasos de visualización.

1.2 PROCESO COMPLETO EN MODO LOCAL

Realizar el proceso completo de introducción de un programa sin conexión con el PC introduciendo los valores 09 y 10.

INFORME

El informe debe incluir la descripción detallada de los procesos completos en modo local y modo

remoto, así como las anotaciones que se consideren necesarias para realizar correctamente la

secuencia.

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

11

Grado en Ingeniería informática – Modalidad Virtual

ANEXO:

Revisar la documentación disponible en el directorio de la plataforma relativo al simulador. Incluye manuales y descripciones de funcionamiento, así como ejemplos.

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 12

Grado en Ingeniería informática – Modalidad Virtual

Manual de otros simuladores

Microprocessor 8085 simulator

El simulador permite comprobar la ejecución de un programa escrito en lenguaje ensamblador para un microprocesador 8085. Facilita la tarea de programación, ya que proporciona un entorno amigable y una serie de herramientas de depuración que hacen que el resultado obtenido tenga gran probabilidad de funcionar correctamente una vez transferido a la memoria del procesador. Se trata de un programa de libre distribución, por lo que cada uno lo puede instalar donde prefiera y practicar la programación del 8085 hasta conseguir el suficiente dominio. A continuación se va a proporcionar una introducción al funcionamiento del programa. No se incluye el repertorio de instrucciones que se explican en el desarrollo de las prácticas de la asignatura. PANTALLA PRINCIPAL DEL PROGRAMA El trabajo con esta herramienta se basa en el conocimiento del contenido de su pantalla principal, y prácticamente única. En ella podemos distinguir las siguientes zonas: Barra de menús: se encuentra en la parte superior de la pantalla. En ella podemos encontrar varios menús desplegables. A saber:

File: permite realizar las operaciones habituales con ficheros: new (crear un nuevo

fichero); open (abrir un fichero ya existente); save (almacenar el fichero que se está empleando); save as (almacenar el fichero que se está utilizando con un nombre y/o ruta distintos); print program (imprimir el programa que se está probando); print regs

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

13

Grado en Ingeniería informática – Modalidad Virtual

and mem (imprimir el contenido actual de registros y memoria del procesador); exit (salir del simulador). Cuando se habla de fichero, se hace referencia a un programa en ensamblador.

Edit: permite realizar operaciones de edición con texto: cut (pasar al portapapeles el

texto seleccionado para su utilización posterior; el texto desaparece de su actual ubicación); copy (copiar un texto seleccionado en el portapapeles; el texto no desaparece de su actual ubicación); paste (recuperar el texto que se encuentra en el portapapeles); delete (borrar el texto seleccionado); select all (seleccionar todo el texto escrito en la zona de trabajo); find (encontrar una determinada cadena de texto dentro de la zona de trabajo); replace (reemplazar una determinada cadena de texto por otra).

CPU: permite realizar operaciones sobre el programa escrito en la zona de trabajo:

compile program (traduce el programa en lenguaje ensamblador a código máquina; no produce cambios visibles en el mismo, pero nos informa si existe algún error de programación); run program (ejecutar el programa escrito; si no se ha compilado previamente, se realiza ahora de forma automática; el programa se ejecuta de una sola vez hasta que se encuentra la instrucción HLT; al final del proceso se pueden observar los cambios producidos en los registros y memoria); run next line (ejecuta solamente una línea de programa); insert breakpoint (inserta un punto de ruptura; se trata de una herramienta habitual de depuración que hace que, en un ejecución continua, el programa se detenga al llegar a este punto); halt execution (detiene la ejecución del programa; es útil sobre todo cuando se entra en un bucle infinito); memory columns (seleccionar las zonas de memoria que queremos tener visibles), fill memory block (rellenar una zona de memoria con un contenido determinado; habrá que especificar el inicio y final de la zona y el dato que se quiere repetir en todas las posiciones intermedias); copy memory block (permite copiar el contenido de una zona de memoria en otra del mismo tamaño; habrá que especificar el principio y final de la zona de origen y el principio de la de destino); refresh (refresca o actualiza el contenido de los registros y memoria); reset cpu (reinicia el procesador, borrando el contenido de registros y memoria y colocando el contador de programa y puntero de pila en la dirección inicial).

Help: proporciona algunas opciones relacionadas con la ayuda:

view readme (permite abrir el fichero de ayuda si se dispone de él); register 8085 simulator (permite opcionalmente registrar la posesión del

programa a través de internet); about (proporciona alguna información sobre el programa y su fabricante).

Barra de utilidades: proporciona botones de acceso directo a las opciones más habituales de los menús:

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 14

Grado en Ingeniería informática – Modalidad Virtual

file (new, open, save, exit); edit (cut, copy, paste);

Botones relacionados con la CPU

compile program,

run program,

run next line,

halt execution, insert breakpoint).

Zona de trabajo: aparece como una hoja en blanco en la que escribir el programa que se quiere probar. Zona de registros: Ventana de registros muestra el contenido simulado de los registros del 8085. Aparecen por un lado el puntero de pila (sp) y el contador de programa (pc);

Por otro lado aparecen el resto de registros agrupados por parejas: BC, DE y HL, el registro A

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

15

Grado en Ingeniería informática – Modalidad Virtual

Zona de memoria: Se accede mediante pulsaciones en los botones siguientes

Pulsando el botón aparecerá el menú de configuración de la ventana que veremos representada. En el sub-menú se configura tanto el número de columnas a visualizar , la dirección de comienzo y el número de posiciones que alcanza

Durante la ejecución del programa visualizaremos una ventana de la siguiente apariencia:

Se permite rellenar una zona de memoria pulsando el botón que hará que

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 16

Grado en Ingeniería informática – Modalidad Virtual

nos aparezca el submenú de relleno

También se puede copiar una zona de memoria en otra mediante pulsación en el

botón ; el menú que aparece será:

Para resetear la simulación y comenzar una nueva pulsaremos el botón

Para salir del programa lo haremos mediante pulsación en el botón El programa puede registrarse de forma gratuita.

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA DE TECNOLOGÍA ELECTRÓNICA E.P.S. BURGOS

17

Grado en Ingeniería informática – Modalidad Virtual

ORGANIGRAMAS, flujogramas o diagramas de flujo: Emplear símbolos normalizados.

Inicio y fin del organigrama

Entradas y salidas del organigrama. Por ejemplo, “introducir el dato”, “imprimir Z”, “visualizar A”

Salto condicional

Realizar una operación

PRÁCTICAS DE FUNDAMENTOS DE COMPUTADORES ÁREA. TECNOLOGIA ELECTRÓNICA E.P.S. BURGOS 18