115113 Software de Base
Trimestre 2008 Invierno
Instructor: Dr. Francisco
Javier Zaragoza Martínez.
Inicio y fin del curso: lunes
14 de enero a miércoles 4
de junio de 2008.
Grupo: CCT01 (lunes,
miércoles y viernes de 9:00
a
10:00).
Asesorías: lunes,
miércoles y viernes de 10:00 a 11:30 en la
oficina H-264.
Salón: E-309.
Cupo: 35 estudiantes y 10
oyentes.
Contenido
Se cubrirá el contenido
oficial del curso (el cual se detalla
abajo). Es posible que el temario se cubra en un
orden distinto al allí mencionado.
- Descripción general de la estructura de una computadora.
- Lenguaje de máquina.
- Diseño de sistemas de programación.
- Ensamblador.
- Cargador y ligador.
- Macro-procesador.
Evaluación
La calificación del curso consta de 60 puntos obtenidos mediante
un proyecto de programación dividido en varias etapas usando el
microcontrolador PIC16F84
de Microchip, 40
puntos obtenidos mediante exámenes
parciales
y 0 puntos obtenidos
mediante tareas. No
habrá examen global. Además de obtener al menos 24
puntos
en los exámenes y al menos 36 puntos en el proyecto, se
requiere:
- obtener al menos un total de 60 puntos para acreditar con S,
- obtener al menos un total de 73 puntos para acreditar con B y
- obtener al menos un total de 87 puntos para acreditar con MB.
Las tareas y el proyecto se podrán entregar por correo
electrónico a
la cuenta sb en gabrijela.azc.uam.mx y
podrán estar escritas en C, C++, Java o Pascal. Su cuenta
está en la misma máquina, a la que se pueden conectar con
ssh y que tiene
dirección IP 148.206.67.155. Recuerden que, de acuerdo al Reglamento de
Alumnos de la UAM, es falta de los alumnos en contra de la
Institución el suplantar o permitir ser suplantado en la
realización de actividades académicas (Artículo 9)
y se impondrá desde amonestación escrita hasta
suspensión por dos trimestres (Artículo 13).
Calendario
El calendario de clases, de entrega de tareas y de
exámenes escritos que muestro abajo es tentativo e irá
apareciendo paulatinamente. He anotado los números
de página de las notas a la derecha
de cada
tema (A-B). Aquí están las notas
completas del curso (basadas en el libro de
Beck) y una versión
más amigable con tu impresora.
- 14/01: Inicio del
curso. Presentación del curso y de las
reglas de
evaluación (1-4).
- 16/01: Software de
aplicación y software de base (5-12).
- 18/01: Estructura
del SIC (13-23).
- 21/01: Formatos de
instrucción del SIC/XE (24-30).
- 23/01: Modos de
direccionamiento del SIC/XE (31-38).
- 25/01: Funciones
básicas de un ensamblador (39-47).
- 28/01:
Código objeto (48-53). Tarea 1 (para el
04/02) y pruebas.
- 30/01: Tablas y
lógica de un ensamblador
(54-69).
- 01/02 a 04/04: Huelga.
- 07/04: Reinicio de curso.
- 09/04: Tablas y
lógica de un ensamblador
(54-69) [Repaso].
- 11/04: Dependencia de la máquina (70-82).
- 14/04: Relocalización de programas (83-93). Primera etapa
del proyecto (para el 02/05).
- 16/04: Literales (94-103).
- 18/04: Símbolos y expresiones (104-112).
- 21/04: Bloques de programa (113-123).
- 22/04: Primera
sesión especial de preguntas (9:00 a 10:00 en la sala de
juntas de Sistemas).
- 23/04: Secciones de control (124-133).
- 25/04: Registros de modificación y ensambladores de carga
y ejecución (134-143).
- 28/04: Ensambladores de uno y varios pasos (144-149). Segunda
etapa
del proyecto (para el 19/05).
- 30/04: Segunda sesión especial de preguntas.
- 02/05: Primer examen
parcial (8:30-10:00).
- 05/05: Día feriado.
- 07/05: Algoritmo de un cargador básico (150-162).
- 09/05: Algoritmo del cargador ligador (163-176).
- 12/05: Búsqueda automática en biblioteca y opciones
del cargador (177-186).
- 14/05: Programas con superposiciones (187-201).
- 16/05: Opciones de diseño del cargador (202-212). Tercera
etapa
del proyecto (para el 09/06).
- 19/05: Macroprocesadores básicos (213-222).
- 20/05: Tercera
sesión especial de preguntas (9:00 a 10:00 en la sala de
juntas de Sistemas).
- 21/05: Algoritmo del macroprocesador, concatenación de
parámetros y etiquetas únicas (223-235).
- 23/05: Expansión condicional, parámetros con
palabras clave y opciones de diseño (236-248).
- 26/05: Cuarta sesión especial de preguntas.
- 28/05: Segundo examen
parcial (8:30-10:00).
- 30/05: Terminó el curso.
- 02/06: Terminó el curso.
- 04/06: Fin del curso.
- 06/06: Día reservado para el examen global.
- 09/06: Revisión de proyectos (8:30-13:00 y 14:30-18:30).
- 10/06: Aquí
está el acta.
- 20/06: Examen de recuperación (16:00).
Bibliografía
- Beck. System Software: An Introduction to
Systems Programming. Addison Wesley.
[Los capítulos 1 a 4 contienen todo el temario del
curso.]
- Brookshear. Introducción
a las ciencias de la computación. Addison Wesley.
- Donovan. Systems Programming. Mc Graw Hill.
- Kernighan y Pike. El
entorno de programación UNIX. Prentice Hall.
- Kernighan y Pike. La
práctica de la programación. Prentice Hall.
- Intel. MCS51
Microcontroller Object Module Format. Intel Corporation.
- Levine, G. Computación
y programación moderna. Addison Wesley. [Los
capítulos 3 y 5 contienen una introducción al curso.]
- Levine, J. Linkers &
Loaders. Morgan Kaufmann Publishers. [Este libro puede verse como
una continuación del capítulo 5 del curso.]
- Microchip. PIC16F84A
Data Sheet. Microchip Technology Inc.
- Palacios, Remiro y López. Microcontrolador PIC16F84.
Alfaomega Ra-Ma.
- Ullman. Fundamental Concepts of Programming Systems. Addison
Wesley.
- Wikipedia. Intel
HEX.