Ingeniería de Telecomunicación

Estructura de Computadores

Asignatura sin docencia presencial

 

Descripción

El objetivo de la asignatura es que el alumno adquiera conocimientos básicos de la programación en ensamblador. Para ello, la asignatura se estructura en una serie de ejercicios de programación, todos ellos pensados para desarrollar en el laboratorio, en los cuales se tratan las características más principales del lenguaje ensamblador.

 

Organización

La asignatura ya no tiene docencia presencial, por lo que el alumno debe prepararla de forma autónoma. Para ello cuenta con la bibliografía recomendada, el cuaderno de prácticas de programación propuestos, el software necesario para el desarrollo y depuración de los programas, y la documentación de ayuda. No será necesario presentar ningún ejercicio ni práctica para poder acudir al examen. Toda la puntuación de la asignatura se obtendrá en el examen.

Como cuaderno de prácticas se ha mantenido el del curso 2009-2010.

 

Evaluación de la asignatura

La evaluación de la asignatura se realizará por medio de un examen práctico en laboratorio. Se propondrá una serie de ejercicios, tomados del cuaderno de prácticas, cada de ellos uno con una puntuación de acuerdo a su dificultad (uno, dos o tres puntos). El alumno irá obteniendo puntos de acuerdo a los programas completados. La suma de las puntuaciones de los ejercicios propuestos superará el 10, de forma que el alumno no deberá completarlos todos, sino que podrá descartar alguno y aún así sumar 10 puntos. No se evaluará la elegancia del código, sino su efectividad, de forma que lo único que se exigirá para obtener todos los puntos asociados a un ejercicio será que el programa haga exactamente lo que el enunciado pide. Si el programa no responde literalmente a los requisitos del enunciado no se considerará completado, y el alumno no obtendrá ningún punto por ese ejercicio. Cuando se cumpla el tiempo asignado al examen, el alumno obtendrá la calificación correspondiente a la suma de las puntuaciones de los ejercicios completados.

 

Materiales

-       Relación de programas (cuaderno de prácticas de laboratorio).

-       Guía de referencia rápida del repertorio del 8086.

-       Guía detallada del repertorio del 8086.

-       Guía de referencia rápida del CodeView.

-       Programa MASM5.1

Este material se puede descargar de: http://atc2.aut.uah.es/~nacho/Estructura/Estructura.html

 

Profesores

Juan Ignacio Pérez Sanz ( nacho@aut.uah.es )        http://atc2.aut.uah.es/~nacho/

Despacho DE322

Tutorías: miércoles de 12 14 y de 15 a 17 h.

Las tutorías deben solicitarse por adelantado.

 

Bibliografía fundamental

 

·      8088-8086/8087 Programación en ensamblador en entorno MS-DOS.
Miguel Ángel Roselló.
Ed. Anaya Multimedia.

Este libro proporciona una excelente guía de referencia de las instrucciones del lenguaje ensamblador del 8086: su sintaxis, operandos, funcionalidad, etc. Incluye ejemplos para cada instrucción, lo que lo hace ideal para consultar los detalles de las instrucciones que se usan en la confección de un programa. No es un libro que explique el proceso de desarrollo de un programa en ensamblador, limitándose a describir las características del lenguaje. Para comprender el proceso de desarrollo de un programa en ensamblador, es preferible el libro de Jon Beltrán de Heredia, también incluido en esta bibliografía.

 

·      Lenguaje ensamblador de los 80x86.
Jon Beltrán de Heredia.
Ed. Anaya Multimedia. 1996.

Este libro es el complemento adecuado para el libro de Miguel Ángel Roselló, que también está incluido en esta bibliografía. Proporciona los conocimientos necesarios para poder crear un programa en lenguaje ensamblador, las técnicas y los procedimientos adecuados para conseguir las funcionalidades requeridas por los enunciados del cuaderno de prácticas. No es un libro de referencia de las instrucciones del lenguaje, sino más bien una descripción de cómo conseguir que los programas hagan lo que se pide. Incluye una descripción del 8086 y de las cuestiones necesarias para programarlo (sistemas de numeración, organización de la memoria, llamadas al sistema operativo MS-DOS y al BIOS, etc).

 

·      Ensamblador para DOS, Linux y Windows

Francisco Charte Ojeda

Ed. Anaya Multimedia, 2003

 

Este libro describe el proceso de desarrollo de programas en ensamblador en diversos entornos, como DOS,Linux y Windows. Aunque la asignatura se centra en entornos DOS por su simplicidad, puede resultar interesante para el alumno conocer otros, como Linux o Windows. Además, la explicación del proceso de desarrollo es muy completa y no requiere conocimientos previos, por lo que es especialmente indicada para alumnos que no han llegado a asistir a clase en esta asignatura.

 

 

·      Lenguaje ensamblador (guía práctica)
Francisco Charte Ojeda.
Ed. Anaya Multimedia. 2009.

Como el título indica, es una guía práctica de programación en lenguaje ensamblador. Incluye la explicación de las características del lenguaje ensamblador del 8086 que se necesitan para la asignatura y, muy interesante, la descripción de herramientas de desarrollo para distintos sistemas operativos, en concreto Windows y Linux (como por ejemplo Visual Studio Express o NASM). No son las herramientas que se utilizan en la asignatura, pero pueden resultar interesantes para el alumno, dependiendo de la configuración de su computador de uso personal.

 

Bibliografía adicional

 

·      Lenguaje ensamblador para computadoras basadas en Intel.

Kip R. Irving.

Pearson – Prentice Hall, 2008

 

Este libro trata de forma muy completa la programación en ensamblador de la familia 80x86. Es especialmente interesante a partir del capítulo 3. Pero tiene el problema de que no se ciñe al 8086, el modelo inicial de la familia, que es el que se trabaja en la asignatura. En consecuencia, explica el uso recursos (registros, instrucciones) de procesadores posteriores y más modernos de la familia que no se utilizan en la asignatura. Por ejemplo, registros de 32 bits (como el EAX, EBX, etc). En la asignatura el tamaño mayor de los registros que se usa es el original del 8086, es decir, 16 bits (como el AX, BX, etc).

 

Este es un libro muy interesante para conocer rápidamente la estructura del 8086. Se incluye como complemento para la bibliografía principal de la asignatura.

 

Este libro está orientado a explicar cómo se diseña un sistema completo basado en un microprocesador de la familia 80x86. Desde este punto de vista, describe la arquitectura de los procesadores de la familia (incluyendo el que interesa para la asignatura, el 8086), y cómo se diseñan sistemas basados en ellos, incluyendo los circuitos integrados adicionales necesarios (temporizadores, controladores de DMA, etc). Además, explica cómo se realiza la programación de dichos sistemas. Para ello, explica inicialmente cómo se programan los microprocesadores para hacer tareas fundamentales, del tipo de las que se realizan en la asignatura, para pasar luego a explicar cómo se programan los circuitos integrados adicionales. Lo que este libro aporta a la asignatura es la descripción del procesador 8086 y de las tareas de programación más elementales del mismo.