Download Ensamblador

Document related concepts

Llamada de interrupción del BIOS wikipedia , lookup

MenuetOS wikipedia , lookup

Interfaz binaria de aplicaciones wikipedia , lookup

Turbo Assembler wikipedia , lookup

Núcleo (informática) wikipedia , lookup

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