UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN DEPARTAMENTO DE CIENCIAS COMPUTACIONALES DATOS GENERALES CLAVE DE MATERIA : CC207 NOMBRE DE LA MATERIA : TALLER DE PROGRAMACIÓN DE SISTEMAS TIPO : TALLER CARÁCTER DEL CURSO : OBLIGATORIO ÁREA DE FORMACIÓN : BASICA PARTICULAR PREREQUISITOS : RECOMENDADO SIMULTANEO O POSTERIOR CON CC206 DEPTO. DE ADSCRIPCIÓN : CIENCIAS COMPUTACIONALES ACADÉMIA : SOFTWARE DE SISTEMAS CARGA HORARIA GLOBAL : 60 HORAS CARGA HORARIA SEMANAL : 3 HORAS VALOR EN CRÉDITOS : 4 CRÉDITOS FECHA DE ACTUALIZACIÓN : JULIO/2004 Aplicar en el Calendario: 2006-A OBJETIVO GENERAL : EL ALUMNO DISEÑARÁ Y PROGRAMARÁ UN ENSAMBLADOR APLICANDO LAS PRINCIPALES TÉCNICAS DE DISEÑO Y GENERACIÓN DE PROGRAMAS DE SISTEMAS POR COMPUTADORA, EMPLEANDO ALGUN LENGUAJE DE ALTO NIVEL. OBJETIVOS ESPECIFICOS: EXPRESADOS EN CADA MODULO DEL CONTENIDO UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN DEPARTAMENTO DE CIENCIAS COMPUTACIONALES TALLER DE PROGRAMACION DE SISTEMAS CONTENIDO TEMÁTICO PRINCIPAL Aplicar en el Calendario: 2006-A Habilidades requeridas: Aplicar y emplear algún estilo de programación Manejar y programar en algún lenguaje de alto nivel Conocer la Arquitectura básica de una computadora Aplicar y emplear la estructura de datos (algoritmos de búsqueda y ordenación) Aplicar y emplear archivos Aplicar y emplear bases numéricas Aplicar y emplear combinacional Aplicar y emplear diseño de autómatas Aplicar y emplear el manejo de cadenas de caracteres Aplicar y emplear aritmética binaria Módulo 1: Modelo de programación de la arquitectura de la computadora. Objetivo: El alumno identificará con detalle los procesos lógicos que suceden en la arquitectura de una computadora para que pueda ejecutar un programa en lenguaje máquina. 1.1. 1.2. 1.3. El alumno identificará el lenguaje máquina de la arquitectura mediante ejercicios (1hr). 1.4. El alumno identificará el modelo de programación de la arquitectura, analizando la arquitectura de la máquina (2hr). MÓDULO 2: ENSAMBLADORES Objetivo: el alumno diseñará un ensamblador de 2 pasos manejando los diferentes esquemas de ensamblado. 2.1. El alumno implementara el algoritmo del 1er paso del ensamblador empleando los archivos auxiliares. 2.1.1. El alumno implementara un algoritmo para separar las partes de una línea de lenguaje ensamblador previo análisis de la misma (3hr). 2.1.2. El alumno Modificará el programa que se solicitó en el punto (3hr) 2.1.1 para que se busque el conjunto de instrucciones identificado y determine cuales modos de direccionamiento le corresponde a cada instrucción de acuerdo a la tabla de códigos de operación. 2.1.3. El alumno complementará el programa del punto 2.12 para que se obtenga el modo de direccionamiento de acuerdo al operando, considerando las diversas bases numéricas y tamaño de la instrucción en bytes de acuerdo al modo de direccionamiento (3hrs). 2.1.4. El alumno Completará el programa del punto 2.1.3 para el uso de las directivas; generación de contador de localidades; y generación de archivos auxiliares Usando la relación existente entre los archivos auxiliares: temporal o de listado; y tabla de símbolos (3hr). 2.2. El alumno implementará el algoritmo del 2do paso del ensamblador empleando los archivos auxiliares. 2.2.1. El alumno modificará el programa del punto 2.1.4 para que sea capaz de obtener el código máquina de los direccionamientos simple previo calculo manual de los mismos (6hr). 2.2.2. el alumno obtendrá el código máquina de direccionamientos compuestos (todos los IDX, [IDX], rel 8 y 16) de acuerdo a la arquitectura 2.2.2.1. El alumno modificará el programa del punto 2.2.1 para que sea capaz de obtener el código máquina de los direccionamientos indexados simples (5, 9,16 bits) previo análisis manual (algoritmo) (6hr). 2.2.2.2. El alumno modificará el programa del punto 2.2.2.1 para que sea capaz de obtener el código máquina de los direccionamientos indexados complejos previo análisis manual (algoritmo) (3hr). 2.2.2.3. El alumno modificará el programa del punto 2.2.2.2 para que sea capaz de obtener el código máquina de los direccionamientos relativos previo análisis (algoritmo) (6hr). 2.2.3. El alumno modificará el programa del punto 2.2.2.3 para que sea capaz de obtener el código objeto interpretando el uso de etiquetas y su sustitución en el ensamblador (3hr). 2.2.4. El alumno modificara el programa del punto 2.2.3 para la obtención del archivo objeto, previo análisis del mismo (6hr). MÓDULO 3: Cargador - ligado. Objetivo: el alumno diseñará el algoritmo de un cargador evaluando el funcionamiento de los esquemas de cargado y ligado de módulos de código objeto. (2 semanas) 3.1. El alumno implementará el simulador del cargador absoluto desarrollando el Algoritmo del mismo (cargador absoluto) (3hr). 3.2. El alumno ubicará al ligador para la arquitectura (1hr). 3.3. El alumno reconocerá las ventajas del uso del ligado analizando las mismas (5hr). RECOMENDACIONES PARA EL APRENDIZAJE Se le recomienda al alumno reforzar todas las habilidades sugeridas al principio del programa. Se contempla una semana para la presentación del curso. Software a utilizar Lenguaje de programación C++ 3.0, Máquina virtual de java, y equipo de cómputo. BIBLIOGRAFÍA BÁSICA: System Software An Introduction to systems programming Leland L. Beck 3rd Edition Addison - Wesley 1997 ISBN 0-201-42300-6 Software de sistemas Introducción a la programación de sistemas Leland L. Beck 1988 ISBN 0-201-64402-9 Addison Wesley Iberoamericana Primera Edición Lenguaje ensamblador y programación para PC IBM y compatibles Tercera Edición y compatibles Peter Abel Prentice Hall 1996 ISBN 968-880-708-7 Los microprocesadores Intel Arquitectura, programación e interfaz de los procesadores 8086/8088/80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro y Pentium II Quinta Edición Barry B. Brey Pearson Educación 2001 ISBN 970-17-04-24-X Lenguaje ensamblador para microcomputadoras IBM Para principiantes y avanzados J. Terry Godfrey Prentice Hall Hispanoamericana, S.A 1991 ISBN 968-880-204-2 Primera edición MATERIAL DE APOYO ACADÉMICO - Pizarrón y gis - Equipo de cómputo ( PC y estaciones de trabajo ) CRITERIOS DE EVALUACIÓN PROYECTO FINAL 40% PRACTICAS-TAREAS (12) 60% 5 puntos por practica con su reporte (3 practica, 2 reporte), reporte de cargador y ligador 10 puntos NOTA: Las prácticas-tareas son para ENTREGARSE personalmente el día marcado en hojas tamaño carta con los siguientes datos:nombre de la materia, nombre del alumno, fecha de entrega, numero de tarea y desarrollo de la misma. No-SE RECIBIRAN PRÁCTICAS ATRASADAS. El ensamblador puede ser entregado en equipo (máximo 3 personas) al ser entregado deberá incluir un reporte de la explicación del mismo (modelo de programación, ligas de objetos, tabla de símbolos en su caso, uso de funciones C++, etc) con los datos arriba mencionados. Para poder evaluar el proyecto final, deberá contar con el 80% de asistencia y tener actividades registradas durante el curso . El ensamblador deberá incluir todos los modos de direccionamiento, macros y directivas. En caso contrario por cada exclusión será 5puntos menos de puntaje. (Esto es por modo de direccionamiento: cada tipo de indexado y relativo cuentan como 1 modo independiente) COMPETENCIAS QUE SE PUEDEN ADQUIRIR Capacidad para diseñar programas de sistemas como el ensamblador y el cargador. CONOCIMIENTO DE LAS DIFERENTES PLATAFORMAS EN LAS QUE SE PUEDEN PROGRAMAR. APLICACIÓN DE UNA PLATAFORMA DIFERENTE CON MISMA FIN DESARROLLO DE SOLUCIONES A NIVEL DE SISTEMA PROPIOS DE LA INDUSTRIA ACTUAL, CON LAS VENTAJAS DE ESTA PLATAFORMA DIFERENTE: MENOR CODIGO OBJETO.