Práctica de Estructura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2010/2011

Documentos relacionados
Práctica de Arquitectura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2016/2017

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Arquitectura de Computadores

Sistemas de E/S Ejercicios propuestos

Guía práctica lenguaje ensamblador

Sesión 9 Reserva de espacio e instrucciones de carga y almacenamiento

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

Tema 7. Entrada / Salida

Paso de parámetros y gestión del marco de pila

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Introducción al simulador

SISTEMAS OPERATIVOS Arquitectura de computadores

Estructura y tecnología de computadores - prácticas en ensamblador

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Computadores y Redes

Capítulo 1 Conceptos arquitectónicos

MEMORIA EJERCICIO 1 EJERCICIO 2

Universidad Tecnológica Nacional Departamento De Electrónica Facultad Regional Buenos Aires. Informática II GUIA DE TRABAJOS PRACTICOS

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES

LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS.

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Construyendo Programas más Complejos

Repaso concepto de programa

Arquitectura de Computadoras 2011

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES II BOLETÍN 4 MICROPROCESADOR MC 68000

PRÁCTICA. Estructura de Computadores Grado en Ingeniería Informática Estudios de Informática, Multimedia y Telecomunicación

ARQUITECTURA DE COMPUTADORES DESCRIPCIÓN BUS PCI (Tema 1: Conexión Externa de Procesadores. Buses)

FUNDAMENTOS DE COMPUTADORES

(Estructura de Computadores)

Introducción Ejercicios PIC: Intel 8259 Más ejercicios Preguntas. Entrada/Salida. Polling e Interrupciones. Francisco García Eijó

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

Guía rápida para gestionar el puerto paralelo del PC

Estructura de Computadores (EdC-ISW-G1) Boletín 4: Programación AVR

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial

Ensamblador del Pentium

Tabla de interrupciones

Lenguajes de Interfaz

EJECUCIÓN DE INSTRUCCIONES

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Tema 6 Organización y gestión de la memoria

Arquitectura de Computadoras 2011

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Programación de Sistemas. Unidad 4. Cargador

Ejercicio * N N X X X X X X X X X X X X X X X X X X X X

Ensamblador martes, 9 de septiembre de :11

FUNDAMENTOS DE COMPUTADORES I

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S.

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

Tema 5.1: Presentación de datos en pantalla

PROGRAMACIÓN ORIENTADA A OBJETOS

ESTRUCTURA DE COMPUTADORES

Arquitectura del MIPS: Introducción

Automatización de una Célula de. Fabricación Flexible:

GUÍA DOCENTE ABREVIADA DE LA ASIGNATURA

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

FUNDAMENTOS DE MICROPROCESADORES SOLUCIONES A LOS PROBLEMAS DE LA UNIDAD-3.- EL PROCESADOR I: EL LENGUAJE MAQUINA

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

ESC1-I2O01 - Estructura de Computadores I

Sistemas operativos: una visión aplicada. Capítulo 1 Conceptos arquitectónicos

Guía de ejercicios # 4 Rutinas: modularización y reuso

Apartado Puntuación. No Presentado

Sesión 1. El Computadores II Rodrigo Santamaría

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

EXAMEN EXTRAORDINARIO DE ORGANIZACIÓN DE COMPUTADORES

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Estructura de los sistemas de cómputo

Unidad 5 Unidad central de proceso

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

NASM. Esquema básico de un programa NASM. Índice. Esquema básico de un programa NASM La sección de datos. La sección de código Creación de ejecutables

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

MICROPROCESADORES. Ejercicio de evaluación continua: E/S del MC68000

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

5 - Lenguaje Ensamblador

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos!

Las fases de la sincronización por interrupción

Práctica ENS:Ensamblar y depurar

Modularización y Reuso: Rutinas en Q3

(Estructura de Computadores)

Metodología y Tecnología de la Programación. I.T. Informática de Gestión

Lógica: Algoritmo: Archivo: Base de datos: Bit:

TEMA 1: Conceptos generales. 1.- Representa los primeros 16 números decimales (del 0 al 15) usando codificación binaria y hexadecimal.

Tema 4: Las interrupciones y la ROM-BIOS

Práctica 6. El procesador

Laboratorio de Dispositivos de Almacenamiento y de Entrada Salida. El puerto paralelo de una computadora. N de práctica: 9. Nombre completo del alumno

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Arquitectura de Computadores II Clase #3

Práctica de Programación en Ensamblador (88110) Laboratorio de Estructura de Computadores

Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Proyecto #1 (Simulación de caché)

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

Informática. Informática = Hardware + Software. Hardware + Software. Hardware = Parte física. Software = Parte lógica

Transcripción:

Práctica de Estructura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2010/2011 Antonio Pérez Ambite Santiago Rodríguez de la Fuente Departamento de Arquitectura y Tecnología de Sistemas Informáticos Facultad de Informática Universidad Politécnica de Madrid Octubre 2010 1. Introducción y objetivos La práctica consistirá en la programación, en ensamblador del Motorola 68000, de un conjunto de subrutinas que permitan la realización de operaciones de Entrada/Salida (E/S) sobre dos líneas serie utilizando el módulo DUART MC68681. La técnica de E/S que se utilizará para esta práctica el la E/S programada o por polling. El objetivo de esta parte es que el alumno se familiarice con el entorno del simulador, el lenguaje ensamblador y la interfaz de los dispositivos que se desea utilizar. Esta parte de la práctica, cuya estructura se muestra en la figura 1, presentará una interfaz constituida por las siguientes subrutinas: INIT: Inicialización del dispositivo. Preparará la línea serie A para recibir y transmitir caracteres. Esta subrutina se le proporcionará construida al alumno. SCAN: Lectura de un dispositivo. Las operaciones sobre la línea A se realizarán mediante muestreo (polling), es decir, mediante E/S programada. PRINT: Escritura en un dispositivo. Las operaciones sobre la línea A se realizarán mediante muestreo (polling), es decir, mediante E/S programada. Se aconseja la realización de este ejercicio en tres fases: Inicialización de los dispositivos. Lectura y escritura en un dispositivo mediante muestreo (polling), es decir, mediante E/S programada. Realización de programas principales que comprueben el funcionamiento correcto de las subrutinas. Por ejemplo, un programa que invocando a los módulos anteriores, realice una lectura de un conjunto de caracteres y posteriormente los escriba.

2 Práctica de Entrada Salida (2010 2011) Programa Principal INIT PRINT SCAN SALIDA LÍNEA A ENTRADA LÍNEA A Figura 1: Estructura de la primera parte de la práctica. 2. Descripción de las Subrutinas Todas las subrutinas reciben los parámetros en la pila y el valor de retorno, si lo tiene, se devuelve en el registro D0. INIT ( ) Parámetros: No tiene. La línea A debe quedar preparada para la recepción y transmisión de caracteres. Al finalizar la ejecución de la instrucción RTS, el puntero de pila (SP) debe apuntar a la misma dirección a la que apuntaba antes de ejecutar la instrucción BSR. Debido a la particular configuración del emulador, esta subrutina no puede devolver ningún error y, por tanto, no se devuelve ningún valor de retorno en el registro D0. Descripción: La rutina INIT realiza la inicialización de la línea A del MC68681. Como resultado, la línea A debe quedar preparada para la recepción y transmisión de caracteres. Los parámetros de inicialización de esta subrutina son los siguientes: 8 Bits por carácter. No activar el eco. La velocidad de recepción y transmisión será de 38400 bits/s. Funcionamiento Full Duplex: deben estar habilitadas la recepción y la transmisión simultáneamente.

Práctica de Entrada Salida (2010 2011) 3 Se supondrá que el programa que invoca a esta subrutina no deja ningún valor representativo en los registros del computador salvo el puntero de marco de pila (A6). SCAN (Buffer, Tama~no) Parámetros: Buffer: 4 bytes. Es el buffer en el que se van a devolver los caracteres que se han leído del dispositivo. Se pasa por dirección. Es un parámetro de salida. Tamaño: 2 bytes. Es un número entero sin signo que indica el número de caracteres que se quieren leer del dispositivo. Es un parámetro de entrada. D0: 4 bytes. Se devuelve un código que indica el número de caracteres que se han leído. Descripción: La rutina SCAN realiza la lectura, de la línea A del MC68681, de un bloque de caracteres cuyo tamaño viene definido por el parámetro Tama~no. La lectura se deberá realizar de forma bloqueante, es decir, la subrutina finalizará cuando se haya completado la lectura del bloque completo. El programa deberá devolver en la dirección apuntada por Buffer el bloque de caracteres leído. Esta subrutina debe dejar el puntero de pila (SP) apuntando a la misma posición de memoria a la que apuntaba antes de realizar la llamada a subrutina. Se supondrá que el programa que invoca a esta subrutina habrá reservado espacio suficiente en el buffer que se pasa como parámetro (Buffer) y no deja ningún valor representativo en los registros del computador salvo el puntero de marco de pila (A6). PRINT (Buffer, Tama~no) Parámetros: Buffer: 4 bytes. Es el buffer en el que se pasa el conjunto de caracteres que se desea escribir en el dispositivo. Se pasa por dirección. Es un parámetro de entrada. Tamaño: 2 bytes. Es un número entero sin signo que indica el número de caracteres que se quiere escribir en el puerto A. Es un parámetro de entrada. D0: 4 bytes. Se devuelve un código que indica el número de caracteres que se han escrito. Descripción: La rutina PRINT realiza la escritura de un bloque de caracteres, cuyo tamaño viene definido por el parámetro Tama~no, por la línea A del MC68681. La escritura se deberá realizar de forma bloqueante, es decir, la subrutina no finalizará hasta que haya completado la escritura del bloque completo. Esta subrutina debe dejar el puntero de pila (SP) apuntando a la misma posición de memoria a la que apuntaba antes de realizar la llamada a subrutina. Se supondrá que el programa que invoca a esta subrutina no deja ningún valor representativo en los registros del computador salvo el puntero de marco de pila (A6).

4 Práctica de Entrada Salida (2010 2011) Nota: como complemento a la descripción de estas subrutinas, en la sección Ejemplos se proporcionan distintos casos de uso. 3. Variables locales y paso de parámetros El procesador MC68000 no dispone de un registro de propósito específico que realice las tareas de puntero de marco de pila (FP). No obstante, habitualmente se suele utilizar el registro de direcciones A6 para que realice estas funciones. El procesador MC68000 dispone de dos instrucciones que ayudan a la creación y destrucción del marco de pila de una subrutina: LINK y UNLK. Estas instrucciones permiten gestionar fácilmente la creación y destrucción de las variables locales de una subrutina. El espacio asignado para variables locales se reserva en el marco de pila de la correspondiente rutina. Para construir dicho marco de pila basta con salvaguardar el valor que tuviera el registro que actúa como puntero al marco de pila (A6), crear el nuevo marco de pila y reservar espacio en la pila para las variables locales. Obsérvese que todas estas funciones son realizadas por la instrucción LINK. Supóngase que una rutina SCAN del ejercicio 2 necesita utilizar dos variables locales de 32 bits (i y j). La estructura de la pila se muestra en la figura 2. La reserva de este espacio de variables (8 bytes) se realizará al entrar en la rutina: SCAN: LINK A6, #-8 *Se crea el marco de pila Si en el código posterior de la rutina SCAN se desea cargar en el registro D2 la variable i y en D3 la variable j se realiza con el siguiente código ensamblador: SCAN: LINK A6, #-8 *Se crea el marco de pila MOVE.L -8(A6),D2 MOVE.L -4(A6),D3 Para deshacer el marco de pila creado a la entrada de la subrutina se deberán realizar las siguientes acciones: Se copia el valor del puntero de marco al puntero de pila. Se restaura el valor que tuviera el puntero de marco antes de entrar en la subrutina. Se retorna a la subrutina llamante. Las dos primeras acciones son realizadas mediante la instrucción UNLK. Por tanto, el código de salida de una subrutina que utilice marco de pila se muestra a continuación. UNLK A6 RTS *Se destruye el marco de pila

Práctica de Entrada Salida (2010 2011) 5 Asignación de etiquetas y de memoria Los puntos de entrada de las subrutinas deberán ir asociados a las etiquetas INIT, SCAN y PRINT. El rango de direcciones 0 a la 0x00003FF se reservarán para ubicar la tabla de vectores de interrupción. El alumno debe ubicar todo el código (datos y variables globales privadas a las subrutinas) a partir de la dirección hexadecimal 0x0000400 hasta la 0x00007FFF. La pila se situará en las posiciones altas de memoria. A7 (SP) I_byte_3 I_byte_2 I_byte_1 I_byte_0 J_byte_3 J_byte_2 J_byte_1 J_byte_0 A6 (FP) Antiguo_FP_byte_3 Antiguo_FP_byte_2 Antiguo_FP_byte_1 Antiguo_FP_byte_0 Dir_Ret_byte_3 Dir_Ret_byte_2 Dir_Ret_byte_1 Dir_Ret_byte_0 Buffer_byte_3 Buffer_byte_2 Buffer_byte_1 Buffer_byte_0 Descriptor_byte_1 Descriptor_byte_0 Tamaño_byte_1 Tamaño_byte_0 Figura 2: Gestión de variables locales.

6 Práctica de Entrada Salida (2010 2011) Ejemplos Como aclaración a la especificación de las subrutinas, a continuación se incluye una serie de ejemplos con los argumentos que se pasan a cada una de las subrutinas y direcciones de memoria que se modifican. Este conjunto de casos debe ser utilizado como ejemplo de la especificación a subrutinas, no como los casos de prueba con los que se evaluará la práctica. Puesto que en este procesador el direccionamiento es a nivel de byte, cada una de las direcciones que se muestran en este apartado contendrán un byte. NOTA: Los números que comienzan con 0x están representados en hexadecimal. E/S programada: INIT Caso 1. 32000:??,??,??,??, Debe dejar la línea A preparada para la recepción y transmisión de caracteres. E/S programada: SCAN Caso 2. Caracteres a la entrada de la línea A: Representación ASCII: 32000: 0x00, 0x00, 0x13, 0x88, 32004: 0x00, 0x0C, 5000:??,??,??,??,...,?? arquitectura de 0x61, 0x72, 0x71, 0x75, 0x69, 0x74, 0x65, 0x63 0x74, 0x75, 0x72, 0x61, 0x20, 0x65, 0x64

Práctica de Entrada Salida (2010 2011) 7 D0 = 12 5000: 0x61, 0x72, 0x71, 0x75, 0x69, 0x74, 0x65, 5007: 0x63, 0x74, 0x75, 0x72, 0x61 Caracteres pendientes de ser leídos: Representación ASCII: <blanco> de 0x20, 0x65, 0x64 Caso 3. Caracteres a la entrada de la línea A: Representación ASCII: 32000: 0x00, 0x00, 0x13, 0x88, 32004: 0x00, 0x01, 5000:??,??,??,??,...,?? s 0x73 D0 = 1 Caracteres pendientes de ser leídos: 5000: 0x73 <vacío> E/S programada: PRINT Caso 4. 32000: 0x00, 0x00, 0x13, 0x88, 32004: 0x00, 0x07 5000: 0x70, 0x6C, 0x61, 0x6E, 0x20, 0x39, 0x36 D0 = 7

8 Práctica de Entrada Salida (2010 2011) Caracteres a la salida de la línea A: 0x70, 0x6C, 0x61, 0x6E, 0x20, 0x39, 0x36 Representación ASCII: plan 96 4. Normas La práctica se realizará en grupos de dos personas. Estos grupos serán los mismos que realizarán el proyecto de E/S. El grupo tendrá que registrarse en el sistema de entrega de prácticas en http://www.datsi.fi.upm.es/practicas al igual que en prácticas anteriores. Se realizarán correcciones en todas las sesiones de prácticas cada 15 minutos. De esta forma cada grupo de prácticas puede evaluar el logro de objetivos de la práctica. Se realizará una última corrección a las 20:00 del día de la última sesión. En http://www.datsi.fi.upm.es/docencia/estructura_09/e_s/ puede encontrar información acerca de esta práctica. 5. Sesiones Se han programado dos sesiones en las que los alumnos deberán realizar las tareas que se describen a continuación. 5.1. Sesión 1 En esta sesión se realizará una toma de contacto con el simulador BSVC. El profesor expondrá cómo se arranca, se configura, se carga un programa, se ponen puntos de ruptura y cómo se ejecuta. En esta sesión se exige que el alumno programe la rutina SCAN que se ha expuesto anteriormente. El alumno utilizará la subrutina INIT que le han proporcionado los profesores de la práctica y completará el fichero proporcionado por los profesores con la rutina SCAN. A lo largo de esta sesión el sistema de entrega de prácticas corregirá las prácticas que se entreguen cada 15 minutos. 5.2. Sesión 2 En esta sesión se exige que el alumno programe la rutina PRINT. A lo largo de esta sesión el sistema de entrega de prácticas corregirá las prácticas que se entreguen cada 15 minutos. Si el alumno finaliza con la tarea asignada, debe comenzar a resolver el proyecto de E/S.