Departamento de Electrónica y Comunicaciones

Alfonso Alejandre

Microprocesadores

 

Esta asignatura pertenece al Segundo Curso de Ingeniería Técnica Sistemas y al Segundo Curso de Ingeniería Superior.

 

Aprovechando los conocimientos adquiridos en Introducción a las Computadoras (asignatura que cierra el acceso a Microprocesadores), se pasa a utilizar microprocesadores reales. Concretamente el intel 80386 y superiores. Existen dos grandes bloques en el curso

Curso 2002-2003

Tema I: Características generales de los micros 80x86 y Pentiums.

1. Historia.
2. Otras características.
3. Organización de la memoria.
4. Alineamiento de datos, notaciones y convenios.

Tema II: Operandos, registros, direccionamientos y variables.

1. Reubicación de programas y direccionamiento mediante segmentos.
2. Registros de usuario.
3. Operandos de las instrucciones de datos enteros.
4. Operandos en memoria.
5. Variables y nombres de variables.
6. Ejemplos correctos e incorrectos:
7. Otros accesos a memoria.

Tema III: El modo real.

1. Traducción de dirección lógica a física.
2. El sistema de interrupciones.
3. La inicialización.

Tema IV: Las instrucciones que no rompen la secuencia.

1. Introducción.
2. Instrucciones con 2 operandos “normales”.
3. Instrucciones con 1 operando y un número de bits (rotaciones y “shifts”).
4. Instrucciones con 1 operando y una dirección de puerto.
5. Instrucción con 2 operandos forzados: un registro y un puntero (LEA).
6. Instrucciones con 1 operando.
7. Instrucciones sin operandos.
8. Instrucciones de multiplicación y división.
9. Instrucciones de manipulación de strings.
10. Instrucciones repetitivas.

Tema V: Las instrucciones de ruptura de secuencia.

1. Instrucciones NEAR (intrasegmento) y FAR (intersegmento).
2. Etiquetas y nombres de PROCs (procedures).
3. Instrucciones de salto condicional.
4. Instrucciones de saltos y llamadas a subrutimas incondicionales.
5. Retornos de subrutinas llamadas con CALL.
6. Paso de parámetros por pila.
7. Manejo de interrupciones software

Tema VI: Ejemplo de entorno en modo real: el MS-DOS.

1. Las System Calls.
2. Estructura software del PC en MS-DOS.
3. Las System Calls y las funciones BIOS.
4. System Calls para manejo de teclado y pantalla.
5. Tratamiento de ficheros en MS-DOS.
6. System Calls para manejo de ficheros y terminación del programa.
7. Las macros.

Tema VII: Diseño de programas en ensamblador para MS-DOS.

1. Esquema típico del programa.
2. El fichero macros.mac.
3. Los modelos de memoria.
4. Los directivos de apertura de segmento.
5. Otros directivos.
6. El proceso de ensamblado.
7. El Turbodebugger y su uso.
8. Las conversiones de ASCII a binario y viceversa.
9. El ensamblado automático.
10. Segunda sesión de prácticas.
11. Las librerías.
12. Las funciones de la librería convs.lib.
13. Tercera sesión de prácticas.

Tema VIII: La segmentación.

1. Introducción.
2. La protección en la carga de segmentos.
3. Las tablas GDT y LDT.
4. Los descriptores.
5. Los registros de segmento.
6. Los registros GDTR y LDTR.
7. Detalle de la carga directa de un registro de segmento.
8. Detalle de los accesos a memoria.
9. Las Call Gates.
10. Los retornos de subrutina intersegmento.
11. Introducción al cambio de tarea.
12. El registro TR y los descriptores de TSS.
13. Configuración del TSS.
14. El cambio de tarea directo.
15. El cambio de tarea a través de Task Gate.
16. Notas finales sobre el cambio de tarea.
17. Las interrupciones en modo protegido.
18. ¿Por qué hay 3 formas de atender interrupciones?.
19. Proceso de atención a interrupciones mediante subrutinas.
20. Proceso de atención a interrupciones mediante Task Gates.
21. Vectores reservados.
22. La instrucción IRET.
La carga del registro IP.
Instrucciones privilegiadas.

Tema IX: La paginación.

1. Memoria virtual.
2. Memoria virtual segmentada.
3. Memoria virtual paginada.
4. Memoria virtual de segmentos paginados.
5. Espacios de direccionamiento.
Paginación sin direcciones extendidas.
Paginación con direcciones extendidas.

Tema X: Memoria caché.

1. Velocidad de las memorias pipeline y caché.
2. Configuraciones de caché.
3. Carga de línea en caché: Acceso en modo página y bancos entrelazados.
4. Cachés serie y paralelo.
5. Criterios de escritura en memoria principal.
6. Coherencia entre cachés. Protocolo MESI.

La presente documentación ha sido elaborada por los profesores de la asignatura, consta de varios anexos y puede ser bajada para uso personal. No puede ser colocada en otras páginas web sin autorización de los autores.

Anexos. zip  (455 KB.) Contiene los siguientes Anexos:

Anexo A: Contiene un subconjunto del set de instrucciones del 80386

Anexo B: Contiene un subconjunto de las System Calls del MS-DOS

Anexo C: Contiene información sobre el proceso de ensamblado y librería de rutinas de conversión

Anexo E: Contiene un conjunto de tablas relacionadas con la segmentación y la paginación en los micros intel xx86

 

Seguidores

Seguidores (638 KB) Contiene seguidores de clase para diferentes partes de la asignatura

Seguidores de clase con proyector:

Primer cuatrimestre en  PPT.  (5,4 MB.)

Segundo Cuatrimestre PDF Contiene seguidores de clase de Segmentación, Paginación y Memoria caché (932 KB.)

 

Problemas y ejemplos

Problemas de clase. (6.6 MB.) Diferentes problemas de los que se realizan en clase. Uno de los ficheros pertenece al tema 8 (enlace de ensamblador y el lenguaje C, que no se cursa con el nuevo programa de la asignatura, pero se ha mantenido su presencia.).

Ejemplo de call gate en PPT.. (1 MB.) Problema detallado del proceso de llamada a una subrutina a través de una CALL GATE.

Paginación en PPT (1,4 MB).

PlantEXE.zip (31 KB) Contiene una plantilla para empezar a escribir programas en ensamblador para MS-DOS, permite que podamos visualizar con facilidad enteros y cadenas de caracteres.

 

Bibliografía  Bibliografía recomendada para la asignatura.

 

 

 

Problemas examen curso 2003/2004 (80 páginas 718 KB.)

Problemas examen curso 2004/2005 (78 páginas 362 KB.)