Site hosted by Angelfire.com: Build your free website today!

Tec Virtual

Instituto Tecnológico de Villahermosa
Villahermosa, Tabasco, Mex.

Lenguaje Ensamblador


1. DATOS DE LA ASIGNATURA
2. UBICACION DE LA ASIGNATURA
3. OBJETIVO(S) GENERAL(ES) DEL CURSO
4. T E M A R I O
5. BIBLIOGRAFIA
6. GUIA GENERAL DE PRACTICAS
7. LABORATORIO
8. EJERCICIOS PROPUESTOS
 

1. DATOS DE LA ASIGNATURA
Nombre de la Asignatura : Lenguaje Ensamblador
Carrera : Licenciatura en Informática
Clave de la Asignatura : IFC-9304
Horas teoría - Horas práctica - Créditos 4-2-10

2. UBICACION DE LA ASIGNATURA
a). Relación con otras asigturas del plan de estudios
 
ANTERIORES
ASIGNATURAS TEMAS
Orgranización de Computadoras. Todos los temas
Estructuras de Datos I Representación de datos estructurados
POSTERIORES
ASIGNATURAS TEMAS
Software de Sistemas I Ensambladores

b) Aportación de la asignatura al perfil del egresado
Le permite conocer los componentes internos de un procesador y manejar directamente el hardware de una computadora, lo que pemitirá hacer un uso mas eficiente de este.

3. OBJETIVO(S) GENERAL(ES) DEL CURSO
Desarrollar programas en lenguaje ensamblador que contribuyan a la optimización de los recursos de una computadora.

4. T E M A R I O
 
I. Arquitectura del procesador 1.1. Introducción
1.2. Importancia del lenguaje ensamblador
1.3. Historia de los procesadores
1.4. Terminales del microprocesador
1.5. Diagrama de componentes internos
       1.5.1. Descripción de componentes
                a). Registros generales(AX,BX,CX,DX)
                b). Registros apuntadores(SP, BP)
                c). Registros indices(SI, DI).
                d). Registros de segmentos(SS,CS,DS,ES)
                e). Registro apuntador de instrucciones(IP)
                f). Registro de estados(banderas)
                g). Cola de instrucciones
                h). Unidad de control de la unidad de ejecución
                i). Buses internos(datos, direcciones)
                j). Unidad aritmética-lógica
      1.5.2. Funcionamiento interno(ejecución de un programa)
1.6. Manejo de memoria
      1.6.1. Segmentación
      1.6.2. Dirección física
      1.6.3. Dirección efectiva(desplazamiento)
1.7. Direccionamiento de los datos
      1.7.1. Implícito
      1.7.2. Dato inmediato
      1.7.3. Directo
      1.7.4. Registro
      1.7.5. Registro indirecto
      1.7.6. Registro relativo
      1.7.7. Registro base indexado
      1.7.8. Registro a base indexado
II. Programación básica 2.1. Formatos de instrucciones
2.2. Formato de un programa
2.3. Proceso de ensamble y ligado de un programa
2.4. Directivas de ensamble(pseudoinstrucciones)
      2.4.1. Definición de datos(DB,DW,DD,LABEL,EQN...)
      2.4.2. Directivas de definición de memoria 
                 (PROC,SEGMENT,ASSUME,END...)
      2.4.3. Directivas para el ligado de un programa
      2.4.4. Directivas de control de listado
      2.4.5. Definición de macros
2.5. Instrucciones para transferencia de datos
        (MOV,LEA,LDS,LES,XCHG)
2.6. Instrucciones aritméticas
      2.6.1. Aritmética binaria
              (ADD,ADC,SUB,SBB,INC,DEC,NEG,CBW,
               CWD,MUL,IMUL,DIV,IDIV)
      2.6.2. Aritmética empacada BCD(Binary Code Dec.)
               AAA,AAS,AAM,AAD)
      2.6.3. Aritmética desempacada BCD(Binary Code Dec.)
               AAA,AAS,AAM,AAD)
2.7. Instrucciones de manipulación de banderas
       (CLC,CMC,STC,CLD,STD,CLI,STI,LAHF,SAHF)
2.8. Instrucciones de compración y prueba(CMP,TEST)
2.9. Instrucciones de saltos
      2.9.1. Condicional
                 (JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JC,JG,JGE...)
      2.9.2. Incondicionales dentro y fuera del segmento(JMP)
2.10. Instrucciones de ciclos
         (LOOP,LOOPZ,LOOPNZ,JCXZ)
2.11. Instrucciones lógicas(AND,OR,XOR,NOT)
2.12. Instrucciones de rotación y desplazamiento
         (SAL,SHL,SAR,SHR,ROR,ROL,RCL,RCR)
2.13. PUSH, POP,PUSH,POPF)
III. Manipulación de strings 3.1. Definición de strings
3.2. Almacenamiento en memoria
3.3. Instrucciones para manipulación
       (MOV,STOS,CMPS,LODS,SCAS)
3.4. Interrupciones para E/S de strings
I.V. Programación de E/S 4.1. Definición de interrupciones
4.2. Ejecución de una interrupción
4.3. Tipos de interrupciones
       4.3.1. Internas(de programa)
       4.3.2. Externas(del BIOS)
V. Macros 5.1. Definición
5.2. Parámetros y etiquetas
5.3. Ensamble de macros
5.4. Ventajas y desventajas
VI. Programación modular 6.1. Definición de procedimientos
6.2. Pase de parámetros
6.3. Instrucciones para llamada(CALL)
6.4. Procedimientos internos
6.5. Procedimientos externos
VII. Programación híbrida 7.1. Pascal y ensamblador
7.2. C y ensamblador
7.3. Cobol y ensamblador
7.4. Basic y ensamblador

5. BIBLIOGRAFIA BASICA Y COMPLEMENTARIA
        1.    MICROMPUTERR SYSTEM, THE 8086/8088 FAMILY,
               ARCHITECTURE, PROGRAMMING AND DESIGN
               YU CHENG LIU, GLEW A. GIBSON
               MC GRAW HILL

        2.    PROGRAMMING THE INTEL 80386
               BUD E. SMITH, NARK JOHNSON
               IBM BOOK

        3.    ASSEMBLY LANGUAJE AND SISTEMS PROGRAMMING
               FOR THE IBM PC Y COMPATIBLE
               KAREN A. LEMONE

        4.    THE 8086 BOOK
               RECTOR, RUSSEM
               OSBORNE  - MC GRAW HILL

        5.    8086-8088 ARCHITECTURE AND PROGRAMMING
               INCLUDING 8087 NUMERIC CO-PROCESSOR
               TRIO, JEAN-MICHEM
               MC MILLIAN

        6.    IBM PC ASSEMBLY
               LANGUAJE A GUIDE FOR PROGRAMMING
               LEO J. SCALON

        7.    MACROASSEMBLER 5.1
               FOR THE MS-SOD OPERATING SISTEMS
               - PROGRAMERS GUIDE
               - MICROSOFT CODE VIEH A UTILITIES UPDATE
                  ED. MICROSOFT CORPORATION
        8.    THE VISIBLE COMPUTER 8088
               ASSEMBLY LANGUAJE
               TEACHING SISTEM
               IBM PC

        10.   ASSEMBLY LANGUAJE
                PETER NORTON
                PC.

        11.   LENGUAJE ENSAMBLADOR Y PROGRAMACION PARA PC IBM Y COMPATIBLES
                PETER ABEL
                PEARSON EDUCACION
                *** LIBRO RECOMENDADO

6. GUIA GENERAL DE PRACTICAS

UNIDAD I
    Investigar arquitectura, funcionamiento y características de otros microprocesadores diferentes al modelo estidiado en clase.

UNIDAD II
    Tarea para aplicar el manejo de instrucciones de:
        a). Transferencia de datos
        b). Instrucciones aritméticas
        c). Manipulación de banderas
        d). Comparación, prueba, saltos y lógicas
        e). Ciclos
        f). Stacks

UNIDAD III
    Tarea para aplicar la manipulación, entrada y salida de strings.

UNIDAD IV
    Tarea para aplicar el manejo de interrupciones.

UNIDAD V
    Tarea para aplicar el manejo de macros.

UNIDAD VI
    Tarea para aplicar el llamado a subrutinas..

UNIDAD VII
    Tarea para aplicar llamadas entre un lenguaje de alto nivel y ensamblador..