115113 Software de Base
Trimestre 2007 Primavera
Instructor: Dr. Francisco
Javier Zaragoza Martínez.
Inicio y fin del curso: lunes
23 de abril a viernes 6 de julio.
Grupo: CCT01 (martes y jueves
de 10:00 a 11:30).
Asesorías:
miércoles de 9:00 a 13:00 y jueves de 11:30 a 13:00 en la
oficina H-264.
Salón: E-309.
Cupo: 35 estudiantes incluyendo
a los 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 50 puntos obtenidos mediante
un proyecto de programación dividido en varias etapas usando el
microcontrolador RS08
de Freescale, 30
puntos obtenidos mediante exámenes
parciales
y 20 puntos obtenidos mediante tareas. No
habrá examen global. Además de obtener al menos 18
puntos
en los exámenes y al menos 30 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 se deberán entregar por correo electrónico a
la cuenta sb en gabrijela.azc.uam.mx. 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. Aquí están las notas completas del curso (basadas en el libro de
Beck) y una versión
más amigable con tu impresora.
- 24/04: Inicio del
curso. Software de aplicación y software de base (páginas
1 a 8).
- 26/04: Estructura del SIC y SIC/XE (páginas 9 a 22).
- 27/04: Formatos de instrucción del SIC/XE
(páginas 23 a 33). Clase
extra de 10:00 a 11:30 en el E-306.
- 30/04: Formatos de instrucción del SIC/XE
(páginas 23 a 33). Clase
extra de 16:00 a 17:30 en la Sala de Juntas de Sistemas.
- 01/05: Día feriado.
- 03/05: Ensamblador simple y código objeto (páginas
34 a 48).
- 04/05: Tablas y lógica del ensamblador
(páginas 49 a 59). Clase
extra de 10:00 a 11:30 en el E-306.
- 08/05: Modos de direccionamiento del SIC/XE (páginas 60 a
71). Tarea 1 (para el 18/05 ver corrección) y proyecto (para el 28/05 ver corrección).
- 10/05: Día feriado.
- 15/05: Día feriado.
- 17/05: Día perdido por
el paro.
- 18/05: Primera sesión especial de preguntas
acerca del proyecto. Sesión
extra de 10:00 a 11:30 en el E-306.
- 22/05: Relocalización de programas (páginas 72 a
81). Tarea 2 (para el 31/05) y proyecto (para el 07/06).
- 24/05: Primer examen
parcial: Modos de direccionamiento y ensambladores
(páginas 1 a 81).
- 26/05: Literales,
símbolos y expresiones (páginas
82 a 98) y segunda sesión especial de preguntas
acerca del proyecto. Clase
extra de 10:00 a 11:30 y sesión extra de 11:30 a 13:00 en el
E-309.
- 29/05: Bloques de programa y secciones de control (páginas
99 a 110).
- 31/05: Ensamblado con símbolos externos (páginas
111 a 121).
- 05/06: Opciones de diseño del ensamblador (páginas
122 a 131). Tarea 3 (para el 26/06) y proyecto
(para el 28/06)
- 07/06: Cargadores básico y relocalizador (páginas
132 a 142).
- 12/06: Ligado y relocalización (páginas 143 a 154).
- 14/06: Tercera sesión especial de preguntas
acerca del proyecto.
- 18/06 a 22/06: Estaré en una conferencia.
- 26/06: Opciones de ligado independientes de la máquina
(páginas 155 a 177). Tarea 4 (para el
16/07) y proyecto (para el 16/07).
- 28/06: Opciones de diseño del cargador (páginas 178
a 186).
- 03/07: Macroprocesadores básicos y algoritmo del
macroprocesador (páginas 187 a 201).
- 05/07: Opciones de macroprocesamiento (páginas 202 a 216).
- 10/07: Segundo
examen parcial: Secciones de control, cargadores, ligadores y
macroprocesadores.
- 12/07: Fin del curso.
- 17/07 a 20/07: Entrega y revisión del proyecto.
Estaré disponible el martes 17 de 9:00 a 12:00, el
miércoles 18 de 9:00 a 13:00 y de 15:00 a 18:00 y el viernes 20
de 10:00 a 17:30.
Por favor no lo dejen para el último día.
- 20/07: Entrega del acta.
- 05/09: Examen de recuperación (16:00 a 19:00, Titular:
José Netz, Suplente: Francisco Zaragoza).
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.
- Descripción de los registros del
código objeto de Motorola/Freescale.
- Donovan. Systems Programming. Mc Graw Hill.
- Freescale. RS08
Microcontrollers Data Sheet. Freescale
Semiconductor.
- Kernighan y Pike. El
entorno de programación UNIX. Prentice Hall.
- Kernighan y Pike. La
práctica de la programación. Prentice Hall.
- 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.]
- Ullman. Fundamental Concepts of Programming Systems. Addison
Wesley.