PROYECTO Nº 1 ORGANIZACIÓN DE COMPUTADORAS Licenciatura en Ciencias de la Computación - Segundo cuatrimestre de 2009 Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur Programación en Assembler Enunciado: Empleando el entorno de desarrollo y simulación 8086 Microprocessor Emulator, diseñar un programa escrito en lenguaje Assembler para la arquitectura 8086, el cual partiendo de la plantilla para ejecutables .com, implemente el controlador de un motor paso a paso de un portón corredizo de apertura remota. Concretamente, el programa debe llevar adelante las siguientes tareas: • El portón corredizo es controlado mediante el dispositivo virtual Stepper Motor. Este dispositivo simula un motor paso a paso como el usado para automatizar distintos tipos de portones. En este caso en particular, asumiremos que hacen falta cuatro giros completos del motor para abrir o cerrar el portón en su totalidad. • En todo momento debe monitorear el teclado a la espera de nuevos comandos. Los comandos reconocidos por el controlador son “izquierda” para abrir el portón, “flecha derecha” para cerrarlo, “abajo” para detener el portón (sin importar que quede a medio abrir o cerrar), y finalmente “arriba” para finalizar la ejecución del programa. Cabe acotar, el usuario puede cambiar de opinión en cualquier momento y decidir cerrar el portón a la mitad de la ejecución de un comando anterior de apertura o vice-versa. • Haciendo uso del dispositivo virtual LED Display se debe mantener informado al usuario acerca del estado actual del portón, indicándose mediante una valor porcentual qué tan abierto o cerrado está el portón en ese instante. Dispositivos disponibles: El programa implementado debe hacer uso de los distintos dispositivos que se simulan dentro del entorno de programación, a saber: Motor paso a paso: Este dispositivo se controla mediante el puerto 7. Se trata de un puerto de lectura/escritura que opera con bytes. Display numérico: El cual se controla mediante el puerto 199. Se trata de un puerto de lectura/escritura que opera con words. Para más información acerca de la operación de los dispositivos y del significado particular de los diversos bits consultar la documentación del entorno de programación. Observaciones de la implementación: El programa se deberá denominar: porton.asm. El código fuente deberá estar correctamente estructurado (indentación, etc.). 1 PROYECTO Nº 1 ORGANIZACIÓN DE COMPUTADORAS Licenciatura en Ciencias de la Computación - Segundo cuatrimestre de 2009 Departamento de Ciencias e Ingeniería de la Computación - Universidad Nacional del Sur En el código, entre eficiencia y claridad, se debe optar por la claridad. Toda decisión en este sentido debe constar en el informe que acompaña al programa implementado. Deben efectuar la programación utilizando técnicas de programación modular, estudiadas durante la carrera, en este caso por ser un programa pequeño se recomienda utilizar llamadas a procedimientos y macros (la cuales son herramientas propias y apropiadas en el uso de lenguajes de tipo ensamblador). Documentación: • • • El código entregado deberá estar documentado adecuadamente, es decir: todos los bloques de código, procedimientos y macros utilizadas (o creadas). Indicar datos de entrada y salida en procedimientos y macros, como así también el propósito de dichas rutinas. La documentación en este caso tiene que estar dirigida al programador. Es obligatorio que en dicho informe se especifique el algoritmo general de todo el programa. Condiciones de entrega: • • • • El proyecto debe ser realizado en comisiones individuales sin excepciones (pueden intercambiar ideas entre compañeros pero no código). El trabajo debe ser entregado el día 20 de noviembre, en el horario normal de la práctica. Deberán entregar el archivo: porton.asm y cualquier otro necesario para poder ejecutar el programa y necesario durante la corrección (exceptuando aquellos incluidos en la aplicación emu8086). Deberá entregarse un folio de nylon que contenga: El informe impreso y carátula (con nombre y LU) El código impreso de todo el código fuente entregado. Un CDr(w) o pendrive con los módulos implementados. Deberán contener doble copia los archivos involucrados para el proyecto, en carpetas con los nombres: original y backup respectivamente. Condiciones de aprobación: No serán corregidos programas que generen errores durante la compilación. No serán corregidos los proyectos donde los archivos no respeten los nombres solicitados. Los proyectos no corregidos no son aceptados, por lo tanto se consideran desaprobados. Los proyectos no entregados o fuera de fecha no son aceptados, por lo tanto se consideran desaprobados. 2