GOBIERNO CONSTITUCIONAL DEL ESTADO LIBRE Y SOBERANO DE OAXACA INSTITUTO ESTATAL DE EDUCACIÓN PÚBLICA DE OAXACA COORDINACIÓN GENERAL DE PLANEACIÓN EDUCATIVA COORDINACIÓN GENERAL DE EDUCACIÓN MEDIA SUPERIOR Y SUPERIOR PROGRAMA DE ESTUDIOS NOMBRE DE LA ASIGNATURA Lenguaje Ensamblador CICLO Sexto Semestre CLAVE DE LA ASIGNATURA 20602 ANTECEDENTE NINGUNO TOTAL DE HORAS 85 TIPO Teórica-práctica OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA Proporcionar al estudiante los conocimientos fundamentales del lenguaje ensamblador y con esto pueda explotar las capacidades del hadware de la computadora a bajo nivel en forma eficiente. TEMAS Y SUBTEMAS 1. FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR 1.1. Organización de la computadora 1.2. Lenguaje máquina y lenguaje ensamblador 1.3. Importancia del lenguaje ensamblador 1.4. Aplicaciones del lenguaje ensamblador 1.5. Tipos de lenguajes ensambladores 1.6. Lenguajes Ensambladores y lenguajes de alto nivel 1.7. Estructura de un programa en ensamblador 1.8. Ensamble, enlace y ejecución. 1.9. El entorno de programación ELEMENTOS DEL LENGUAJE 2.1. Formato de las instrucciones 2.2. Definición de datos 2.3. Instrucciones básicas, de transferencia de datos y Aritméticas 2.4. Manipulación de bits 2.5. Ramas y Lazos 2.6. Interrupciones básicas de E/S 3. PROCEDIMIENTOS Y MACROS 3.1. Programación modular 3.2. La pila 3.3. Direccionamiento indirecto 3.4. Procedimientos 3.5. Macros 4. ARREGLOS 4.1. Direccionamiento indexado 4.2. Declaración de arreglos 4.3. Acceso a los elementos del arreglo 4.4. Arreglos multidimensionales 4.5. Cadenas. 5. MANEJO DE INTERRUPCIONES 5.1. Definición de interrupción 5.2. Interrupciones de video 5.3. Interrupciones de teclado 5.4. Interrupciones de la impresora 5.5. Interrupciones de llamadas a servicios del sistema HOJA 1 DE 1 6. PUNTO FLOTANTE 6.1. Representación en punto flotante 6.2. Aritmética de punto flotante 6.3. El coprocesador numérico: Hardware e Instrucciones 7. PROGRAMACION HIBRIDA 7.1. Directivas para compilación hibrida 7.2. Funciones en ensamblador 7.3. Integración de módulos de ensamblador con lenguajes de alto nivel 8. MANEJO DE DISPOSITIVOS 8.1. Puerto serial 8.2. Puerto paralelo ACTIVIDADES DE APRENDIZAJE Sesiones dirigidas por el profesor. Las sesiones se desarrollarán utilizando medios de apoyo didáctico como son la computadora portátil, dispositivos de plataformas de ejemplo y el proyector de video. Asimismo, se desarrollarán programas de cómputo sobre los temas y los problemas del curso. CRITERIOS Y PROCEDIMIENTOS DE EVALUACIÓN Y ACREDITACIÓN Al inicio del curso el profesor indicará el procedimiento de evaluación que deberá comprender al menos tres evaluaciones parciales que tendrán una equivalencia del 50% y un examen final que tendrá otro 50%, la suma de estos dos porcentajes dará la calificación final. Las evaluaciones serán escritas, y prácticas; éstas últimas, se asocian a la ejecución exitosa y la documentación de la solución de programas asociados a problemas sobre temas el curso. Además se considerará el trabajo extra clase y la participación durante las sesiones del curso. BIBLIOGRAFÍA TEXTOS BÁSICOS: • Professional Assembly Language (Programmer to Programmer), Blum, Richard, Wrox, 2005. • Assembly Language Steep-by-steep: Programming with DOS and Linux, Duntemann, Jeff, Second Edition: Wiley, 2000. • Guide to Assembly Language Programming in Linux, Sivarama P. Dandamudi, Springer, 2005, 1 edition. • Linux Assembly Language Programming, Neveln, Bob, Prentice-Hall, 2000. TEXTOS DE CONSULTA: • Assembler Language Primer for the IBM PC&XT, Lafore, Robert, 1984. • Ensamblador Básico, Rojas Ponce, Alberto. • IBM PC Assembly Language and Programming, Abel, Peter, Prentice-Hall, 1998. • IBM PC&XT Assembly Language: A Guide for Programmers, Enhanced and Enlarged, Scanllon, Leo, Brady Books/Prentice Hall Press, 1985. PERFIL PROFESIONAL DEL DOCENTE Ingeniero en computación o en Sistemas computacionales con Maestría en computación o Doctorado en computación. HOJA 2 DE 2