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.
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.
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.
-
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.
Este material se puede descargar
de: http://atc2.aut.uah.es/~nacho/Estructura/Estructura.html
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.