UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO 1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO 3063 CLAVE: TIPO DE ASIGNATURA: TEÓRICA/PRÁCTICA ASIGNATURA: LENGUAJE ENSAMBLADOR ING. EN COMPUTACIÓN, SEXTO SEMESTRE GRADO: ---ANTECEDENTE CURRICULAR: 2.- OBJETIVO GENERAL Proporcionar al estudiante los conocimientos fundamentales del lenguaje ensamblador y con esto pueda explotar las capacidades del hardware de la computadora a bajo nivel en forma eficiente. 3.- UNIDADES 1. Fundamentos del lenguaje ensamblador; 2. Elementos del lenguaje; 3. Procedimientos y macros; 4. Arreglos; 5. Manejo de interrupciones; 6. Punto flotante; 7. Programación hibrida; 8. Manejo de dispositivos. 4.- TIEMPO ASIGNADO Y CRÉDITOS DE LA ASIGNATURA. HORAS SEMANA HORAS SEMESTRE CRÉDITOS TEORÍA PRÁCTICA TOTAL 2.5 2.5 5 42 43 85 7 HOJA 1 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO 5.- CONCENTRADO POR UNIDAD ASIGNATURA: UNIDADES LENGUAJE ENSAMBLADOR CARGA POR UNIDAD EN HORAS TEORÍA PRÁCTICA TOTAL OBJETIVOS POR UNIDAD 1. Fundamentos del lenguaje ensamblador 9 0 9 Describir los fundamentos del lenguaje ensamblador identificando su estrecha relación con el hardware de un sistema de cómputo 2. Elementos del lenguaje 5 7 12 Explicar y aplicar los principales elementos sintácticos del lenguaje para el desarrollo de programas estructurados 3. Procedimientos y macros 5 6 11 Comprender y aplicar los mecanismos de modularización propios del lenguaje ensamblador 4. Arreglos 5 7 12 Utilizar formas eficientes de organización de datos en memoria principal 5. Manejo de interrupciones 5 6 11 Identificar y aplicar el concepto de interrupción a bajo nivel 6. Punto flotante 5 7 12 Describir los principales estándares de representación de punto flotante y la utilización de las instrucciones del coprocesador matemático 7. Programación hibrida 5 5 10 Emplear códigos escritos en lenguaje ensamblador con códigos escritos en lenguajes de alto nivel 8. Manejo de dispositivos 3 5 8 Identificar y aplicar el manejo de dispositivos a través de los puertos serial y paralelo. HOJA 2 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO 6.- PROGRAMA DE ESTUDIOS ASIGNATURA: LENGUAJE ENSAMBLADOR UNIDAD: 1. Fundamentos del lenguaje ensamblador TEMA OBJETIVO: Describir los fundamentos del lenguaje ensamblador identificando su estrecha relación con el hardware de un sistema de cómputo HORAS 1.1. Organización de la computadora. 1 1.2. Lenguaje máquina y lenguaje ensamblador. 1 1.3. Importancia del lenguaje ensamblador. 1 1.4. Aplicaciones del lenguaje ensamblador 1 1.5. Tipos de lenguajes ensambladores. 1 1.6. Lenguajes ensambladores y lenguajes de alto nivel. 1 1.7. Estructura de un programa en ensamblador. 1 1.8. Ensamble, enlace y ejecución. 1 1.9. El entorno de programación. 1 ACTIVIDADES DE APRENDIZAJE Exponer y discutir sobre la vigencia del lenguaje ensamblador. TÉCNICAS APOYOS DIDÁCTICOS Exposición oral y debate de temas en el salón de clase. Proyector, Computadora personal, diapositivas Pizarrón Investigar sistemas actuales Desarrollo de con funcionalidades ejemplos y ejercicios. soportadas a bajo nivel Libros e Internet Entorno de desarrollo libre Leer artículos relacionados con el uso del lenguaje ensamblador Estudio de casos Sesiones prácticas en el laboratorio Investigar sobre la evolución de los microprocesadores Intel x86 y AMD Investigar sobre diferentes plataformas de programación a bajo nivel Diseñar e implementar programas simples en ensamblador HOJA 3 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO ASIGNATURA: LENGUAJE ENSAMBLADOR UNIDAD: 2. Elementos del lenguaje TEMA OBJETIVO: Explicar y aplicar los principales elementos sintácticos del lenguaje para el desarrollo de programas estructurados HORAS 2.1. Formato de las instrucciones. 1 2.2. Definición de datos. 1 2.3. Instrucciones básicas, de transferencia de datos y Aritméticas. 3 2.4. Manipulación de bits. 2 2.5. Ramas y Lazos. 3 2.6. Interrupciones básicas de E/S. 2 ACTIVIDADES DE APRENDIZAJE Investigación sobre los ordenes big-endian y littleendian TÉCNICAS APOYOS DIDÁCTICOS Exposición oral de temas en el salón de clase. Proyector, Computadora personal, diapositivas Pizarrón Resolver ejercicios de Desarrollo de programación secuenciales ejemplos y ejercicios. que involucren transferencia de datos y operaciones aritméticas con datos enteros Sesiones prácticas en el laboratorio Libros Entorno de desarrollo libre Resolver ejercicios de programación que involucren manipulación de bits Resolver ejercicios de programación que involucren saltos condicionales y repeticiones HOJA 4 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO ASIGNATURA: LENGUAJE ENSAMBLADOR UNIDAD: 3. Procedimientos y macros TEMA OBJETIVO: Comprender y aplicar los mecanismos de modularización propios del lenguaje ensamblador HORAS 3.1. Programación modular. 1 3.2. La pila. 2 3.3. Direccionamiento indirecto. 2 3.4. Procedimientos. 3 3.5. Macros. 3 ACTIVIDADES DE APRENDIZAJE Resolver ejercicios de programación utilizando llamados a procedimientos de librería Resolver ejercicios de programación utilizando la pila para implementar procedimientos TÉCNICAS APOYOS DIDÁCTICOS Exposición oral de temas en el salón de clase. Proyector, Computadora personal, diapositivas Pizarrón Desarrollo de ejemplos y ejercicios. Libros Entorno de desarrollo libre Sesiones prácticas en el laboratorio Resolver ejercicios de programación utilizando macros Resolver ejercicios de programación que involucren recursividad Escribir un programa con varios módulos, cada uno con diversos procedimientos y/o macros HOJA 5 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO ASIGNATURA: LENGUAJE ENSAMBLADOR OBJETIVO: Utilizar formas eficientes de organización de datos en memoria principal UNIDAD: 4. Arreglos TEMA HORAS 4.1. Direccionamiento indexado. 1 4.2. Declaración de arreglos. 1 4.3. Acceso a los elementos del arreglo. 3 4.4. Arreglos multidimensionales. 3 4.5. Cadenas. 4 ACTIVIDADES DE TÉCNICAS APRENDIZAJE Resolver ejercicios de Exposición oral de programación que involucren temas en el salón de el uso de arreglos clase. unidimensionales Desarrollo de Resolver ejercicios de ejemplos y ejercicios. programación que involucren el uso de arreglos de más de una dimensión Sesiones prácticas en el laboratorio Investigar el repertorio de instrucciones para el manejo de cadenas con el ensamblador utilizado APOYOS DIDÁCTICOS Proyector, Computadora personal, diapositivas Pizarrón Libros Entorno de desarrollo libre Programar diversas rutinas comunes en las librerías estándar de manejo de cadenas, tales como copiar cadenas, encontrar una subcadena, etc. HOJA 6 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO ASIGNATURA: LENGUAJE ENSAMBLADOR UNIDAD: 5. Manejo de interrupciones TEMA OBJETIVO: Identificar y aplicar el concepto de interrupción a bajo nivel HORAS 5.1. Definición de interrupción. 1 5.2. Interrupciones de video. 3 5.3. Interrupciones de teclado. 2 5.4. Interrupciones de la impresora. 2 5.5. Interrupciones de llamadas a servicios del sistema ACTIVIDADES DE TÉCNICAS APRENDIZAJE Desarrollar un programa para Exposición oral de temas en el salón de escribir un texto a color clase. Desarrollar rutinas para dibujar una línea, un Desarrollo de ejemplos y ejercicios. rectángulo y un triángulo Desarrollar un programa para rastrear el ratón 2 APOYOS DIDÁCTICOS Proyector, Computadora personal, diapositivas Pizarrón Libros Entorno de desarrollo libre Sesiones prácticas en el laboratorio Desarrollar un programa para imprimir un texto sencillo. HOJA 7 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO ASIGNATURA: LENGUAJE ENSAMBLADOR UNIDAD: 6. Punto flotante TEMA OBJETIVO: Describir los principales estándares de representación de punto flotante y la utilización de las instrucciones del coprocesador matemático HORAS 6.1. Representación en punto flotante. 3 6.2. Aritmética de punto flotante. 4 6.3. El coprocesador numérico: Hardware e Instrucciones. 5 ACTIVIDADES DE TÉCNICAS APRENDIZAJE Investigar la documentación Exposición oral de temas en el salón de de Intel y/o AMD para el manejo de punto flotante clase. APOYOS DIDÁCTICOS Proyector, Computadora personal, diapositivas Pizarrón Resolver diversos ejercicios Desarrollo de de programación que ejemplos y ejercicios. involucre el uso de datos de tipo real Sesiones prácticas Escribir un programa que en el laboratorio muestre el binario de un número de punto flotante Libros Entorno de desarrollo libre Escribir las rutinas de redondeo hacia arriba y hacia abajo HOJA 8 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO ASIGNATURA: LENGUAJE ENSAMBLADOR UNIDAD: 7. Programación hibrida TEMA OBJETIVO: Emplear códigos escritos en lenguaje ensamblador con códigos escritos en lenguajes de alto nivel HORAS 7.1. Directivas para compilación hibrida. 2 7.2. Funciones en ensamblador. 2 7.3. Integración de módulos de ensamblador con lenguajes de alto nivel. 6 ACTIVIDADES DE APRENDIZAJE Resolver ejercicios de programación utilizando la técnica de ensamblado en línea Resolver ejercicios de programación utilizando llamados a procedimientos escritos en alto nivel TÉCNICAS APOYOS DIDÁCTICOS Exposición oral de temas en el salón de clase. Proyector, Computadora personal, diapositivas Pizarrón Desarrollo de ejemplos y ejercicios. Libros Entorno de desarrollo libre Sesiones prácticas en el laboratorio Resolver ejercicios de programación utilizando llamados a procedimientos escritos en bajo nivel Realizar pruebas de desempeño entre rutinas escritas en alto nivel y rutinas escritas a bajo nivel HOJA 9 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO ASIGNATURA: LENGUAJE ENSAMBLADOR UNIDAD: 8. Manejo de dispositivos TEMA OBJETIVO: Identificar y aplicar el manejo de dispositivos a través de los puertos serial y paralelo. HORAS 8.1. Puerto serial. 4 8.2. Puerto paralelo. 4 ACTIVIDADES DE TÉCNICAS APRENDIZAJE Exposición oral de Desarrollar una aplicación para controlar un dispositivo temas en el salón de serial clase. APOYOS DIDÁCTICOS Proyector, Computadora personal, diapositivas Pizarrón Desarrollar una aplicación Desarrollo de para controlar un dispositivo ejemplos y ejercicios. paralelo Libros Entorno de desarrollo libre Sesiones prácticas en el laboratorio HOJA 10 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO 7.- APOYO BIBLIOGRÁFICO TEXTO BÁSICO: • Lenguaje ensamblador para microcomputadoras IBM: para principiantes y avanzados, J. Ferry Godfrey. Prentice Hall. 1991. • Introducción al Microprocesador 8086/8088, Christopher L. Morgan & Mitchell Waite, Editorial McGraw Hill, 1991. • 80386/80286 Programación en Lenguaje Ensamblador, William H. Murria III && Chris H. Pappas, Editorial McGraw-Hill. 1987. • Lenguaje Ensamblador y Programación para PC IBM y Compatibles, Peter Abel, Editorial Prentice Hall, 1996. TEXTO DE CONSULTA: • Ensamblador para DOS, Linux y Windows, Francisco Charte Ojeda, Editorial Anaya Multimedia, 2003. • Los Microprocesadores de Intel, Barry B. Brey, Quinta edición, Editorial Prentice Hall, 2003. • 32/64-bit 80x86 Assembly Language Architecture, James Leiterman, Quinta edición, Editorial Wordware Publishing INC., 2005. 8.- EVALUACIÓN • Al inicio del curso el profesor indicará el procedimiento de evaluación, el cual deberá comprender las evaluaciones parciales y la ordinaria. El promedio de las calificaciones parciales representará el 50 % de la calificación final y el examen ordinario, el otro 50 %. • Las evaluaciones deberán ser por escrito y en su caso con apoyos orales y prácticos. • Para tener derecho a cada evaluación, el alumno deberá cumplir con un mínimo de 85 % de asistencia. • A criterio del profesor serán considerados los trabajos de investigación, tareas, exposiciones, proyectos y participación en clases. • Las evaluaciones parciales y la final, se efectuarán de acuerdo al calendario vigente, en los días y horas publicados por el Departamento de Servicios Escolares. HOJA 11 DE 12 UNIVERSIDAD DEL ISTMO PROGRAMA DE ESTUDIO M. C. J. Jesús Arellano Pimentel M. en C. Daniel Pacheco Bautista ELABORÓ FECHA DE ELABORACIÓN: FECHA DE APROBACIÓN: Vo.Bo. M en C. Víctor Manuel Martínez Rodríguez APROBÓ 14 de enero de 2010 HOJA 12 DE 12