Download Ensamblador
Document related concepts
Transcript
División Académica de Ciencias Básicas PROGRAMA DE ESTUDIOS Ensamblador Licenciatura en Ciencias Computacionales Área a la que pertenece: Horas teóricas: Horas prácticas: Créditos: Clave: Área Sustantiva Profesional 3 2 8 F0160 Asignaturas antecedentes y subsecuentes PRESENTACIÓN El lenguaje ensamblador es ampliamente utilizado en la programación de microcontroladores, drivers de dispositivos y en general cualquier aplicación que requiera obtener el máximo rendimiento del equipo o que deba ejecutarse en un espacio de memoria muy reducido. El estudio del lenguaje ensamblador es un recurso didáctico muy importante, ya que le permite al alumno: a) refinar su lógica de programación, b) conocer el hardware de la computadora e interactuar directamente con él y c) utilizar la Interfaz de programación de aplicación (API) del sistema operativo. OBJETIVO GENERAL Ser capaz de diseñar e implementar rutinas y programas en lenguaje ensamblador y de integrarlo con lenguajes de alto nivel como C/C++, controlar dispositivos periféricos. F0160_Ensamblador 1/5 División Académica de Ciencias Básicas Licenciatura en Ciencias Computacionales CONTENIDO Unidad No. Objetivo particular 1 INTRODUCCIÓN Conocer y explicar las ventajas y desventajas de la programación en lenguaje ensamblador, realizar con destreza conversiones entre diferentes sistemas de numeración. Hrs estimadas Temas 1.1. Características del lenguaje ensamblador: ventajas y desventajas 1.2. Diferencia entre ensamblar y compilar 1.3. Sistema numérico binario 1.4. Conversiones 1.5. Operaciones lógicas 1.6. Operaciones aritméticas 1.7. Paridad, acarreo y sobreflujo 1.8. Sistema de numérico binario en complemento a 2 1.9. Conversiones y operaciones aritméticas. 1.10. Sistema de numeración hexadecimal. Unidad No. Objetivo particular 2 Resultados del aprendizaje Identificar las ventajas que se tienen al programar en un lenguaje de bajo nivel como es el ensamblador, saber realizar operaciones aritméticas con números binarios y hexadecimales ARQUITECTURA DE LA COMPUTADORA Definir los elementos y funciones que conforman la arquitectura de una computadora específica, haciendo énfasis en el manejo de memoria y en los modos de direccionamiento. Hrs estimadas Temas 2.1. Arquitectura general de una computadora 2.2. CPU 2.3. Memoria 2.4. Interfaces de E/S 2.5. Periféricos de la computadora 2.6. Conjunto de registros F0160_Ensamblador Resultados del aprendizaje Conocer los elementos de una arquitectura de computadora básica y su funcionamiento. 2/5 División Académica de Ciencias Básicas 2.7. 2.8. 2.9. 2.10. Licenciatura en Ciencias Computacionales Manejo de la pila Manejo de memoria (segmentación) Modos de direccionamiento Conjunto de instrucciones (clasificación) Unidad 3 No. Objetivo particular Hrs estimadas PROGRAMACIÓN BÁSICA EN ENSAMBLADOR Ser capaz de escribir, depurar y ejecutar programas sencillos en lenguaje ensamblador. Temas 3.1. Estructura general de un programa en ensamblador 3.2. Procedimiento general para ensamblar y enlazar un programa 3.3. Pseudo operadores y directivas. 3.4. Declaración de variables. 3.5. Instrucciones básicas: mov, add, sub, inc, dec, push, pop, and, or, xor, not, neg y otros. 3.6. Manejo de punteros e índices. 3.7. Uso de un depurador (debuger). Unidad No. Objetivo particular 4 Resultados del aprendizaje Conocer la manera en la que se estructura un programa en lenguaje ensamblador y aplicar las instrucciones básicas para crear programas sencillos. SERVICIOS DEL SISTEMA OPERATIVO Y DEL BIOS Ser capaz de escribir, depurar y ejecutar programas semicomplejos en lenguaje ensamblador, utilizando los servicios básicos del BIOS y del sistema operativo. Hrs estimadas Temas 4.1. Panorama general de los servicios del sistema operativo 4.2. Procedimiento general para invocar un servicio 4.3. Servicios de despliegue de datos 4.4. Servicios de lectura 4.5. Manejo de cadenas de caracteres 4.6. Conversiones de cadena a número y viceversa F0160_Ensamblador Resultados del aprendizaje Identificar y aplicar los servicios básicos del BIOS y las interrupciones necesarias para elaborar programas complejos 3/5 División Académica de Ciencias Básicas Unidad 5 No. Objetivo particular Hrs estimadas PROCEDIMIENTOS Y MACROS Ser capaz de escribir programas estructurados mediante el uso de procedimientos y macros. Temas 5.1. Procedimientos y parámetros. 5.2. Parámetros de la comandos. 5.3. Macros. 5.4. Manejo de archivos. Unidad No. Objetivo particular 6 Licenciatura en Ciencias Computacionales paso línea Resultados del aprendizaje de Saber aplicar macros y procedimientos para optimizar el código de los de programas. PROGRAMACIÓN AVANZADA EN ENSAMBLADOR Escribir programas utilizando algunos servicios avanzados del sistema operativo y del BIOS e interactuando directamente con el hardware de la computadora y con otros lenguajes de programación. Como consecuencia de esto, al terminar esta unidad el alumno será capaz de comprender la mayoría de los documentos técnicos sobre las especificaciones de los servicios del S.O. y del BIOS Hrs estimadas Temas 6.1. Escritura directa a memoria de video 6.2. Intercepción de interrupciones 6.3. Programas residentes en memoria 6.4. Uso de ensamblador en combinación con otros lenguajes de programación 6.5. Manejo de directorios Resultados del aprendizaje Desarrollar investigaciones que les permita tener un panorama más amplio sobre las aplicaciones más utilizadas de la programación en lenguaje ensamblador como son los programas residentes en memoria, intercepción de interrupciones entre otras Sugerencias didácticas UNIDAD 1 Lecturas y discusiones en clases, complementadas con comentarios del profesor. Exposición por parte del profesor y proponer muchos ejercicios para que sean resueltos por los alumnos. UNIDAD 2 Lecturas y discusiones, tanto por equipo como grupales, guiadas y complementadas por el profesor. El profesor deberá proponer ejercicios para el cálculo de direcciones, F0160_Ensamblador 4/5 División Académica de Ciencias Básicas Licenciatura en Ciencias Computacionales a partir de los diferentes modos de direccionamiento. UNIDAD 3 Exposición por el profesor. Los alumnos deben estudiar en clases muchos ejemplos sencillos y probarlos en la computadora, escribir programas sencillos que realicen algunas operaciones y ciclos, aunque no desplieguen ningún resultado en la pantalla. UNIDAD 4 Exposición por parte del profesor y que el alumno realice muchos ejercicios en clases y algunos programas de tarea. También se recomienda solicitarle al alumno que investigue y utilice en algún programa otros servicios básicos del sistema operativo y del BIOS UNIDAD 5 El profesor explicará de manera clara y concisa cada uno de los temas de esta unidad, intercalándolos con muchos ejercicios en clases y programas de tarea (un poco más complejos) donde los alumnos puedan aplicar los conocimientos recién adquiridos. Al terminar esta unidad todos los alumnos deben tener definido su proyecto final UNIDAD 6 Los alumnos investigarán sobre algunos temas que sean de particular interés para la realización de sus proyectos. El profesor deberá tratar de formar equipos de trabajo en base a intereses o temas comunes (según los proyectos finales) y propiciar la investigación y aplicación de nuevos conocimientos. Estrategias de evaluación del aprendizaje Examen 5 %, ejercicios en clase y tareas 5%. Tareas de investigación y exposiciones 15%, entrega del proyecto final 30%. Bibliografía Básica Bibliografía Complementaria F0160_Ensamblador 1. Abel, Peter. IBM PC Assembler Programming. Prentice Hall 2. Godfrey, J. Terry. Lenguaje ensamblador para computadoras IBM. Prentice Hall. Brey, Barry B. Los microprocesadores intel: arquitectura, programación e interfaces. Prentice Hall. 3. Lenguage and 5/5