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
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
ASIGNATURAS | TEMAS |
Orgranización de Computadoras. | Todos los temas |
Estructuras de Datos I | Representación de datos estructurados |
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.
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
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..