Documente Academic
Documente Profesional
Documente Cultură
1
Horarios
• Teoría:
– Secretaría asignará a cada alumno uno de los grupos
de teoría siguientes:
Grupo SM-31 (Aula 3101) Lunes y Jueves de 9h a 10h
Grupo SM-32 (Aula 3102) Lunes y Jueves de 9h a 10h
• Laboratorio:
– Cada alumno escogerá libremente uno de los grupos de
laboratorio siguientes:
2
Horarios
L M X J V
Teoría Teoría
9-10
SM-31 y 32 SM-31 y 32
10-11
12-14
Teoría Teoría
17-18
ST-31 ST-31
19-21
3
Calificaciones
• El alumno , para aprobar la asignatura deberá aprobar la teoría
y el laboratorio
– El exámen de teoría constará de unas 7-8 cuestiones teórico prácticas
sobre los temas vistos tanto en las aulas de teoría como la parte teórica
impartida en el laboratorio.
– Las primeras sesiones de laboratorio (4 o 5) serán exclusivamente
teóricas, durarán entre una hora y una hora y cuarto y se verá la parte
mas elemental del ensamblador de los microprocesadores de la familia
Intel (80x86).
– Las últimas sesiones de laboratorio (5 o 6) consistirán en la realización
de practicas en ensamblador con distintos periféricos.
– El alumno deberá presentar un trabajo, cuyo enunciado se le dará en el
mes de Enero, consistente en una memoria y un disquete con el
programa ejecutable. Se le podrá exigir la defensa oral del mismo. El
trabajo podrá ser realizado por parejas. La calificación de dicho trabajo
será la nota de Laboratorio.
4
Exámenes
• Febrero:
– Jueves 17 de Febrero a las 9h en el Bloque X
• Junio:
Miercoles 15 de Junio a las 9h en las aulas del bloque III
• Septiembre
Jueves 8 de Septiembre a las 12h en las aulas del
bloque III
5
WEB del departamento de ATC
http://atc.eui.upm.es
Horarios
Normas
Notas
Programas
Tutorías
Apuntes
Direcciones IP profesores
6
Apuntes de la asignatura
http://atc.eui.upm.es
Diapositivas de Ensamblador (PowerPoint)
7
Profesores
D. Ildefonso González Gayo
Despacho 3014 (En el laboratorio de Tecnología de equipos
informáticos)
Docencia de los grupos SM-31 y SM-32
Tutorías: Martes 9-12
Jueves 11-14
8
Programa de la asignatura
•• Conceptode
Concepto deperifericos
perifericosyyde
deinterfaces
interfaces
•• Diagramasde
Diagramas debloques
bloques
•• ElµP
El µP8086/8087
8086/8087
•• Organizaciónde
Organización delalamemoria
memoriaenenelel8086
8086
•• Interrupciones.PIC
Interrupciones. PIC
•• Temporizadores
Temporizadores
•• Teclado
Teclado
•• DMA
DMA
•• Relojen
Reloj entiempo
tiemporeal
realyyCMOS
CMOSRAM RAM
•• 80286.Modo
80286. ModoProtegido
Protegido
•• 80386,80486
80386, 80486V86,
V86,Pipeline
Pipeline
•• Pentium.Arquitectura
Pentium. Arquitecturasuperescalar
superescalar
•• Video.
Video.
•• Discos,CD,
Discos, CD,Puerto
Puertoserie
serieyyparalelo
paralelo
9
Bibliografía recomendada
•• Los
Losmicroprocesadores
microprocesadoresxx86 xx86yylalaarquitectura
arquitecturadel
delPC.
PC.
AntonioGarcia
Antonio GarciaGuerra
Guerra
PublicacionesETSITM
Publicaciones ETSITM
•• PCPCINTERNO
INTERNO
M.Tischer
M.Tischer
Marcombo
Marcombo
•• Arquitectura
Arquitecturadel
delPC
PC
ManuelUjaldón
Manuel UjaldónMartínez
Martínez
Ed.Ciencia
Ed. Ciencia33
•• IBM
IBMMicrocomputers.
Microcomputers.AAProgrammer’s
Programmer’sHandbook
Handbook
JulioSanchez.
Julio Sanchez.Maria
MariaP. P.Canton
Canton
McGraw-Hill
Mc Graw-Hill
•• ElEluniverso
universodigital
digitaldel
delIBM
IBMPC,
PC,AT
ATyyPS/2
PS/2
CiriacoGarcia
Ciriaco GarciadedeCelis
Celis
Grupouniversitario
Grupo universitariodedeInformatica
Informatica
http://atc.ugr.es/docencia/udigital
http://atc.ugr.es/docencia/udigital
10
1.- GENERALIDADES
•• Esquema
Esquema de
de bloques
bloques de
de un
un
ordenador según
ordenador según Von
Von Neuman
Neuman
1.1 Microprocesador
1.1 Microprocesador (CPU)
(CPU)
1.2 Memoria
1.2 Memoria Principal
Principal
1.3 Periféricos
1.3 Periféricos
1.4 Buses
1.4 Buses
11
1 Ordenador según Von Neuman
BUS DE CONTROL
BUS DE DIRECCIONES
BUS DE DATOS
12
1.1 El microprocesador (CPU)
•Tradicionalmente se le denomina CPU (Unidad
Central de Procesos)
Un µP es una CPU integrada en un solo chip
Consta de la ALU (Unidad Aritmético lógica y de la
UC (Unidad de Control)
CPU
µP = ALU UC
13
1.2 El microprocesador (ALU)
DATO 1 DATO 2
ENTRADAS DE
CONTROL.
ALU = (SELECCIONAN
LA OPERACIÓN
A REALIZAR)
14
1.3 El microprocesador (UC)
BUS DE CONTROL
Reloj
Registro de instrucción
UC
15
1.4 LA MEMORIA CENTRAL
•En el modelo Von Neuman, contiene Datos e instrucciones
BUS DE CONTROL
Mem Rd Wr
Memoria
BUS DE DIRECCIONES
7F040H
µP 7F041H
7F040CH 7f042H
7F043H
7F044H
7F045H
7F046H
BUS DE DATOS
16
1.5 PERIFERICOS
BUS DE CONTROL
INTERFAZ Periférico
BUS DE DIRECCIONES
BUS DE DATOS
17
1.6 COMPARACION PERIFERICO-MEMORIA
BUS DE CONTROL
Mem Rd Wr
IO
Memoria
Interfaz
µP Periférico
BUS DE DIRECCIONES
BUS DE DATOS
18
1.7 Ejecución de una instrucción de lectura en memoria
MOV AL,[0043H]
BUS DE CONTROL
Mem Rd Wr
1 1 0
IO
Memoria 1 0 0
40H Interfaz
µP 00043H 41H 42H
42H 43H 43H Periférico
AL 43H 44H
44H
45H
46H
BUS DE DIRECCIONES
BUS DE DATOS
19
1.8 Ejecución de una instrucción de Input (Lectura en periférico)
IN AL,43H
BUS DE CONTROL
Mem Rd Wr
0 1 0
IO
Memoria 1 0 1
40H Interfaz
µP 00043H 41H 42H
42H 43H 43H Periférico
AL 43H 44H
44H
45H
46H
BUS DE DIRECCIONES
BUS DE DATOS
20
2 DIAGRAMA DE BLOQUES DEL PC
CPU (µP) CONTROLADOR
RELOJ DE DISCO DURO
COPROCESADOR
EN
TIEMPO REAL
Y CONTROLADOR
CONTROLADOR
CMOS RAM DE DISQUETERA
DE
INTERRUPCIONES
PUERTOS
TEMPORIZADORES SERIE
T0
T1 PUERTOS
T2 PARALELO
Periférico 2
22
2.2 TEMPORIZADORES
23
2.3 TECLADO
CONTROLADOR
TECLADO DE
TECLADO CPU
24
2.4 RELOJ EN TIEMPO REAL Y CMOS RAM
SET UP
25
2.5 DMA (ACCESO DIRECTO A MEMORIA)
Permite que un periférico tenga acceso directo
a memoria
BUS DE CONTROL
Controlador
BUS DE DIRECCIONES de DMA
µP MEMORIA
Periférico
26
BUS DE DATOS
3 EL MICROPROCESADOR µP 8086/8088
UNIDAD DE
UNIDAD DE
INTERFAZ
EJECUCION BUS DE DIRECCIONES
CON EL BUS
AH AL AX (EU) (20 BITS)
BH BL BX (BIU)
CH CL CX
DH DL DX SUMADOR
SP
BP
SI BUS DE DATOS (16 BITS)
DI
83FA3
64Kb
4BE3
7F3C0
00000
28
3.2 Registros del 8086
Registros Generales:
AH AL AX ACUMULADOR
BH BL BX BASE
CH CL CX CONTADOR
DH DL DX DATOS
Registros de Segmento:
CS SEGMENTO DE CODIGO
SS SEGMENTO DE PILA
DS SEGMENTO DE DATOS
ES SEGMENTO EXTRA
CS:IP Æ INSTRUCCIÓN
PILA Æ SS: SP
MOV AH,[1000H] ; DS:1000H Æ AH
30
3.4 Registros del 8086
Otros registros:
SP PUNTERO DE PILA
BP REGISTRO DE BASE
SI INDICE FUENTE
DI INDICE DESTINO
IP PUNTERO DE INSTRUCCION
CS:IP Æ INSTRUCCIÓN
PILA Æ SS: SP
MOVSB DS:SI Æ ES:DI
31
3.5 Registros del 8086
Registro de flags:
OF DF IF TF SF ZF AF PF CF
Acarreo
Paridad
Acarreo auxiliar
Zero
Signo
Trap (Paso a paso)
Máscara de interrupciones
Flag de dirección
Flag de overflow
32
3.6 Registros del 8086
Registro de flags; Flag de acarreo
OF DF IF TF SF ZF AF PF CF
Acarreo
Acarreo en sumas
Borrow (Acarreo negativo) en restas y comparaciones
Después de una suma si CF = 1 significa desbordamiento
solo en caso de enteros sin signo
Después de una resta si FC = 1 significa A<B solo si se
trata de enteros sin signo.
En Shifts y rotaciones el bit que “sale” del registro en
cuestión se conserva en este flag
33
3.7 Registros del 8086
Registro de flags; Flag de paridad
OF DF IF TF SF ZF AF PF CF
Paridad
34
3.8 Registros del 8086
Registro de flags; Flag de acarreo auxiliar
OF DF IF TF SF ZF AF PF CF
Acarreo auxiliar
35
3.9 Registros del 8086
Registro de flags; Flag de cero
OF DF IF TF SF ZF AF PF CF
Flag de cero
36
3.10 Registros del 8086
Registro de flags; Flag de signo
OF DF IF TF SF ZF AF PF CF
Flag de signo
37
3.11 Registros del 8086
Registro de flags; Flag Trap (Trampa)
OF DF IF TF SF ZF AF PF CF
Flag de trap
38
3.12 Registros del 8086
Registro de flags; Máscara de interrupciones
OF DF IF TF SF ZF AF PF CF
Máscara de
interrupciones
39
3.13 Registros del 8086
Registro de flags; Flag de dirección
OF DF IF TF SF ZF AF PF CF
Flag de dirección
•
En las instrucciones de Ensamblador de manejo de cadenas :
MOVSB/MOVSW
CMPSB/CMPSW
LODSB/LODSW
STOSB/STOSW
Se efectúa en unos casos una lectura en memoria en la
posición indicada por el par de registros DS:SI y en otros una
escritura en la posición ES:DI.
Finalizada la lectura o la escritura se incrementa o se
decrementa el/los punteros SI o/y DI que hayan intervenido en la
instreucción según que el flag de dirección esté a “0” o a “1”
40
3.14 Registros del 8086
Registro de flags; Flag de dirección
OF DF IF TF SF ZF AF PF CF
Flag de dirección
•Incrementa (Si DF = 0) o decrementa (Si DF = 1) los índices DI
y/o SI después de ejecutar alguna de las instrucciones de
manipulación de cadenas.
.Ejemplo:
DF = 1
Se ejecuta CMPSB (Comparar string de bytes)
OF DF IF TF SF ZF AF PF CF
Flag de Overflow
42
3.16 Registros del 8086
Registro de flags; Flag de Overflow
OF DF IF TF SF ZF AF PF CF
Flag de Overflow
•Ejemplo:
AH = 7C = 01111100 BL = A4 = 10100100
Obtener SUB AH,BL ( AH – BL Æ AH )
11010010
10110100
110000110
Fc = 1 Fo = 0 Fs = 1 Fp = 0 Fz = 0
44
3.18 Registros del 8086
Registro de flags; Ejemplo 2
OF DF IF TF SF ZF AF PF CF
11000100
10100101
101101001
¡OJO!
Fc = 0 Fo = 1 Fs = 0 Fp = 1 Fz = 0
45
Uso de los flags en comparaciones
Se efectúa la resta de dos números A – B. después los
flags me indicarán si A>B, A<B o A=B según el siguiente
criterio:
46
Comparaciones sin flags
Se efectúa la resta de dos números A – B. después los flags me indicarán si
A>B, A<B o A=B según se vió en la diapositiva anterior. Hoy dia no es
necesario el tratar directamente con los flags, el conjunto de instrucciones
del µP incluye saltos condicionados al estado de los flags necesarios:
47
Multiplexado de buses en el 8086/8088
A19…A16
Latch A19…A0
Bus de Direcciones
µP
Bus de Datos
48
Organización de la memoria en el 8086
• Espacio de direcciones lógicas:
FFFFFH
FFFFEH
FFFFDH
1Mb
. .
. .
00002H
00001H
00000H
49
Organización de la memoria en el 8086
A0 Espacio de direcciones físicas:
BHE
FFFFFH FFFFEH
FFFFDH FFFFCH
FFFFBH FFFFAH
512kB
. . . .
. . . .
00007H 00006H
00005H 00004H
00003H 00002H
00001H 00000H
D15…..D8 D7…..D0
BUS DE DIRECCIONES A19…..A1
FFFFFH
64Kb ROM BIOS
F0000H POST (POWER ON SELF TEST)
EFFFFH
POST
•Primera rutina que se ejecuta al conectar el PC
• Realiza un chequeo de algunos periféricos
A0000H • Inicializa los puertos de algunos periféricos
• Efectúa un chequeo de memoria
9FFFFH
• Busca el SO y lo carga en la RAM de Usuario
RAM
De
Usuario
00000H 53
El mapa de memoria en el PC
RAM DE USUARIO
00000H 54
El mapa de memoria en el PC
Tabla de vectores de interrupcion
003FFH
00000H 55
El mapa de memoria en el PC
Area de datos de la ROM BIOS
Ejemplos:
256B Comienzo del Buffer del teclado (00480H y 81H)
00400H Nº de tics (0046CH y 6DH y 6EH y 6FH)
Ejemplos:
Comienzo del Buffer del teclado:
256B
(00480H y 81H)
00400H Nº de tics:
(0046CH y 6DH y 6EH y 6FH)
00000H 58
MEMORIA EXPANDIDA
Controlador Hardware
A19…..A0 de la A’23…..A’0
Memoria expandida
Bloque
Ventana accedido
accedida
• TIPOS DE INTERRUPCION:
1) Interrupciones hardware
2) Interrupción no enmascarable (NMI)
3) Interrupciones internas (Excepciones o traps)
4) Interrupciones Software
60
INTERRUPCIONES
1) Interrupciónes hardware
Periférico0
0
INT
1 Periférico1
1
1 Periférico2
1
µP PIC 1 Periférico3
1
1 FI
Máscara de interrupciones interna 0
1
Periférico n
µP
6
003FF
00000
65
INTERRUPCIONES
Interrupciónes hardware.Tabla de vectores de
interrupción. Dirección de la rutina.
Supongamos el vector 43H:
43H x 4 = 10CH
Dirección de la rutina : 3A24 : 5E3D
1
2 Periférico n
INT
PIC
INTA
3
µP
4
43H
66
INTERRUPCIONES
Interrupciónes hardware.Tabla de vectores de
Supongamos el vector 43H:
43H x 4 = 10CH
003FF
Dirección de la rutina : 3A24 : 5E3D
3A 0010F
µP 5
24
5E
0010E
0010D
3D 0010C
C
IP
10CH
S
00000
67
INTERRUPCIONES
Interrupciónes hardware.Tabla de vectores de
Supongamos el vector 43H:
43H x 4 = 10CH
003FF
Dirección de la rutina : 3A24 : 5E3D
3A 0010F
µP 6
24
5E
0010E
0010D
3D 0010C
C
IP
10CH
S 3D
00000
68
INTERRUPCIONES
Interrupciónes hardware.Tabla de vectores de
Supongamos el vector 43H:
43H x 4 = 10CH
003FF
Dirección de la rutina : 3A24 : 5E3D
3A 0010F
µP 7
24
5E
0010E
0010D
3D 0010C
C
IP
10DH
S 5E 3D
00000
69
INTERRUPCIONES
Interrupciónes hardware.Tabla de vectores de
Supongamos el vector 43H:
43H x 4 = 10CH
003FF
Dirección de la rutina : 3A24 : 5E3D
3A 0010F
µP 8
24
5E
0010E
0010D
3D 0010C
C
IP
10EH
S 24 5E 3D
00000
70
INTERRUPCIONES
Interrupciónes hardware.Tabla de vectores de
Supongamos el vector 43H:
43H x 4 = 10CH
003FF
Dirección de la rutina : 3A24 : 5E3D
3A 0010F
µP 9
24
5E
0010E
0010D
3D 0010C
C
IP
10FH
3A S 24 5E 3D
00000
71
INTERRUPCIONES
Mecanismo de salto a subrutina:
1) SP-2 Æ SP
2) FLAGS Æ PILA
3) IF = 0 TF = 0
4) SP-2 Æ SP
5) CS Æ PILA
6)Vector x 4 + 2 Æ CS
7) SP-2 Æ SP
8) IP Æ PILA
9) Vector x 4 Æ IP
Fin de interrupción : IRET
72
INTERRUPCIONES
Primeras interrupciones:
73
INTERRUPCIONES
2) Interrupción no enmascarable (NMI)
NMI
µP
75
INTERRUPCIONES
4) Interrupciones software
El programa puede hacer uso del salto a
cualquiera de las subrutinas utilizando la
misma técnica de las interrupciones con la
instrucción:
INT vector
P.Ejemplo INT 21H
Las interrupciones software no son
enmascarables
76
INTERRUPCIONES
4) Interrupciones software
El programa puede hacer uso del
salto a cualquiera de las subrutinas
utilizando la misma técnica de las
interrupciones con la instrucción:
INT vector
P.Ejemplo INT 21H
Las interrupciones software no son
enmascarables
77
INTERRUPCIONES
4) Interrupciones software
En las interrupciones (Software o
Hardware) un mismo vector permite el
acceso a varias subrutinas.
fe = 1.19318MHz
f1 = 33 KHz
N1
Programable
N2
Son divisores de frecuencia programables.
La frecuencia de entrada procede de un oscilador a cristal de
cuarzo (fe = 1.19318 MHz)
La frecuencia de salida es la de entrada dividida por Ni (16 bits)
81
TEMPORIZADORES
T0 f0 = 18.2 Hz
“1” Gate IRQ0
fe = 1.19318MHz T0 INT 8
PIC
N0 = 0000H P40H
82
TEMPORIZADORES
T1 y T2 Al refresco de memoria
“1” Gate
T1
Biestable f0 = 66 KHz
fe = 1.19318MHz N1 = 18 H P41H
33 KHz
Gate
T2
N2 = Programable P42H
P43H CONTROL
7 6 5 4 3 2 1 0
P61H
83
TEMPORIZADORES
Puerto 43H (Control del temporizador)
7 6 5 4 3 2 1 0
00 = Temporizador 0
01 = Temporizador 1
10 = Temporizador 2
11 = Comando Read Back 84
TEMPORIZADORES
Esquema de bloques de un temporizador
Bus de datos (8 bits)
CR
CR (M) CR (L) Count register
CONTROL
CONTADOR
CE
Registro de estado Count element
CE
Latch de estado
OL
OL (M) OL (L)
Output Latch
El Count Register es un
CONTADOR
CE Registro de 16 bits.
Registro de estado
Tiene dos entradas de 8 bits
OL (M) OL (L)
Latch de estado conectadas a los bits bajos
del bus de datos.
86
TEMPORIZADORES
Esquema de bloques de un temporizador
CR (M) CR (L)
CONTROL
CONTADOR
CE
CE
Registro de estado
Count element
OL (M) OL (L)
Latch de estado
Se trata de un decontador
DBUS
Acceso al OL:
1º Debemos aislar el OL (Output Latch) del CE (Contador)
Para ello enviaremos un comando de enclavamiento.
2º Leeremos el contenido del OL mediante dos operaciones
seguidas de lectura en puerto.
88
TEMPORIZADORES
Escritura en los puertos 40H, 41H y 42H
Programar mediante el puerto 43h el
o los puertos donde queremos escribir.
Se escribirà en el CR el divisor de
frecuencia del contador
89
TEMPORIZADORES
Escritura en los puertos 40H, 41H y 42H
f0 = 18.2 Hz
T0
0000 P 40H
P 43H
fe = 1.19318MHz
f1 = 33 KHz
T1
18h P 41H
Programable
T2
N2 P 42H
DBus
90
TEMPORIZADORES
Activar el sonido del Temporizador 2
1) Debe cargarse N2 en el puerto 42h
2)Debemos hacer:
Gate del T2 = 1
Entrada de la puerta AND = 1
Para lograr lo anterior debemos
hacer los bits 0 y 1 del puerto 61 h
“1”. Se deberán respetar los demás
bits
91
TEMPORIZADORES
Activar el sonido del Temporizador 2
P. ej. Obtener un sonido de 2 KHz (N2 = 600 = 0258H)
Gate
T2
fe = 1.19318MHz
P42H N2 = Programable
P43H CONTROL
7 6 5 4 3 2 1 0
P61H
93
TEMPORIZADORES
Leer en los puertos 40h, 41h y 42h
Comando de enclavamiento:
Antes de leer se envía al puerto 43h :
7 6 5 4 3 2 1 0
0 0 0 0 0 0
95
TEMPORIZADORES
Leer en los puertos 40h, 41h y 42h
INT 9
Placa base
99
TECLADO
El BIOS y el teclado. INT 16H
F:00
Si hay carácter en el Buffer del teclado devuelve:
En AH El código SCAN
En AL El código ASCII
Borra el carácter leído del Buffer
Si el Buffer está vacío:
Espera la pulsación de una tecla
F:01
Si hay carácter en el Buffer del teclado devuelve:
En AH El código SCAN
En AL El código ASCII
Fz = 1
No borra el carácter leído del Buffer
Si no hay carácter en el Buffer del teclado devuelve:
Fz = 0
No espera pulsación
100
TECLADO
El BIOS y el teclado. INT 16H
F:02
Lee el contenido de la posición de memoria 0040h:0017h y
lo copia en AL
7 6 5 4 3 2 1 0
Bl Bl Bl Shift Shift
Ins Alt Ctrl
May Num Des Izd Der
101
TECLADO
El BIOS y el teclado. INT 16H
F:12h
Devuelve en AL:
7 6 5 4 3 2 1 0
Caps NumScroll Shift Shift
Ins Alt Ctrl
Lock Lock Lock Izd Der
Devuelve en AH:
7 6 5 4 3 2 1 0
Sys Caps NumScroll Alt Ctrl Alt Ctrl
Req Lock Lock Lock Dcha Dcha Izda Izda
102
TECLADO
COMBINACIONES ESPECIALES DE TECLAS
103
TECLADO
COMBINACIONES ESPECIALES DE TECLAS
ALT
104
TECLADO
PUERTOS DEL TECLADO
Puerto 60H En lectura:
Código SCAN enviado por el teclado
Puerto 64H En lectura:
Registro de estado del teclado: Buffer de salida Lleno. (El
teclado ha colocado un dato
7 6 5 4 3 2 1 0 en el puerto 60H y la CPU
aún no la ha leído)
Buffer de entrada Lleno.(La
CPU ha colocado un dato en
el P60H y el teclado aún no la
ha leído)
Command/Data = 0 Æ Salida en Puerto 64H
= 1 Æ Salida en Puerto 60H
= 1 Æ Teclado activado
= 1 Æ Error time out durante la salida. (Se ha
enviado un dato hacia el teclado y este no ha
respondido en el margen de tiempo necesario
= 1 Æ Error time out durante la entrada
= 1 Æ Error de paridad 105
TECLADO
PUERTOS DEL TECLADO
106
TECLADO
PUERTOS DEL TECLADO
Puerto 61H
7 6 5 4 3 2 1 0
0 Æ Teclado deshabilitad0
1 Æ Teclado habilitado
1 = Reconocimiento
107
TECLADO
Retardo (Delay) y Factor de repetición (Tipematic parameters)
Retardo :
Factor de repetición
108
TECLADO
Cambiar el Retardo y Factor de repetición de un teclado
1) Directamente
ADH Æ P64H (Comando deshabilitar teclado)
F3H Æ P60H (Comando poner Retardo y f. de repetición)
0 00 00100 Æ P60H (0,25 sgs y 20 cps)
AEH Æ P64H (Comando habilitar teclado)
2) Usando el BIOS
MOV AX, 0305H (Función 3 Subfunción 5)
MOV BL, 30 30 = 2 c.p.s (Un valor entre 0 y 31)
MOV BH, 0 0 = 0,25 sgs ( valor 0 o 1 o 2 o 3)
INT 16H
109
TECLADO
Comunicación teclado-CPU
110
DMA
Acceso directo a memoria sin DMA
Memoria
µP
AL
1
2
111
DMA
Acceso directo a memoria con DMA
DMA
2
Hold
1 Holda Memoria
µP
112
DMA
1) Solicitud previa (Hold-Holda)
2)Programación de:
Modo: singular
Bloque
113
RTC (Reloj en tiempo real y CMOS RAM)
Puerto 70H
Puerto 71H Lectura de un registro:
00H Segundo
01H Segundo Alarma
02H Minuto Lectura del registro7
03H Minuto Alarma
04H
05H
Hora
Hora Alarma
MOV AL,7 ; 7 Æ AL
06H Dia de la Semana OUT 70H,AL ; AL Æ P70H
07H Dia del mes
08H Mes
09H Año JMP $+2 ; TIEMPO DE
0AH Registro A de estado ;ESPERA
0BH Registro B de estado
0CH Registro C de estado
0DH Registro D de estado IN AL,71H
. .
. .
32H Siglo
114
RTC (Reloj en tiempo real y CMOS RAM)
Registro A
Bit 7 UIP (Solo lectura)
Se pone a uno un poco antes de que se actualicen los
primeros 14 bytes de la memoria. Un cero garantiza 248µs.
115
RTC (Reloj en tiempo real y CMOS RAM)
Registro A Bits 3,2,1,0
Bit 1 (24/12)
117
RTC (Reloj en tiempo real y CMOS
Registro C RAM)
Bit 7 (IRQF) Flag de petición de interrupción
Se pone a 1 si están a 1 simultáneamente:
PF y PIE ó AF y AIE ó UF y UIE
Registro D
Bit 7 (VRT) Valid RAM TIME (= 0 Æ Batería baja)
118
RTC (Reloj en tiempo real y CMOS RAM)
Funcionamiento de la alarma:
120
RTC (Reloj en tiempo real y CMOS
RAM)
Acceso a la CMOS RAM a través del BIOS (INT 1AH)
121
RTC (Reloj en tiempo real y CMOS
Acceso a la CMOS RAM aRAM)
través del BIOS (INT 1AH)
122
RTC (Reloj en tiempo real y CMOS
Acceso a la CMOS RAM aRAM)
través del BIOS (INT 1AH)
123
El µP 80286 (1982)
124
Esquema de bloques del 80286
AU
BU
+ BASE DEL
SEGMENTO + DRIVERS Y LATCHS DE
DIRECCIONES
INTERFAZ
ABus
TEST PREFETCHER DEL
LIMITE DEL COPROCESADOR
DE
SEGMENTO CONTROL DEL BUS
LIMITE
TRANCEPTORES DE DBus
DATOS
COLA DE
INSTRUCCIONES
EU
ALU IU
COLA DE DECODIFICADOR
REGISTROS
control INSTRUCCIONES DE
GENERALES DECODIFICADAS INSTRUCCIONES
125
Esquema de bloques del 80286
BU = Bus Unit
Contiene los elementos de interfaz con los buses
externos; de Datos, Direcciones y Control. En esta zona
se encuentra una cola de instrucciones de 6 bytes,
semejante a la del 8086. No multiplexa los buses.
IU = Instrucción Unit.
Contiene el Decodificador de instrucciones y una
segunda cola de instrucciones ya decodificadas en la
que caben tres instrucciones.
EU = Ejecución Unit.
Contiene el juego de registros generales, la ALU y
el controlador principal.
126
Esquema de bloques del 80286
AU = Address Unit.
Genera las direcciones físicas de 24 bits:
127
Registros del µP 80286
Registros de Segmento
Registros generales
AX AH AL CS
BX BH BL DS
CX CH CL SS
DX DH DL ES
BP 16 bits
SI
Registros de Status y de control
DI
SP F (Flags)
16 bits IP
MSW
16 bits
128
Registros del µP 80286
Registros del modo protegido
GDTR
IDTR
LDTR
TR
16 bits
24 bits
129
Registros del µP 80286
Registro de Flags
NT IOPL OF DF IF TF SF ZF AF PF CF
Acarreo
Paridad
Acarreo auxiliar
Zero
Signo
Trap (Paso a paso)
Máscara de interrupciones
Flag de dirección
Flag de overflow
Input/Output Privilege level
Nested Task
130
Registros del µP 80286
Registro MSW
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TS EM MP PE
Conmutación de tarea
Emulador del coprocesador presente
Coprocesador presente
131
Registros del µP 80286
Registros del 286 en modo protegido
Registros ocultos (cache) asociados
47 40 39 16 15 0
CS D. Acceso Dirección de la base del Segmento Límite del Segmento
Dirección accedida
Offset
DESCRIPTOR
BASE
LIMITE
DERECHOS DE ACCESO
133
Introducción al modo protegido
Los tres últimos bits del Selector son 000 (Debe ser múltiplo
De 8) así pues los sustituimos por:
a1a0 = RPL (Requested Privilege Level)
a2 = 0 La tabla de descriptores será la GDT (Globales)
= 1 Será la LDT (Locales)
RESERVADO RESERVADO
Byte7 Byte6
ACCESO BASE 23…..16
Byte5 Byte 4
BASE 15…..0
Byte3 Byte2
LIMITE 15…..0
Byte1 Byte0
134
Introducción al modo protegido
Descriptor de un segmento normal en un 80386
El byte 6 contiene:
BITS 0...3 Æ 16....19 del límite
BIT 4, U= USUARIO (A disposición del programador)
BIT 5, X= RESERVADO
BIT 6; D= DEFAULT SIZE (0=16 bits, 1=32bits)
BIT 7; G=GRANULARIDAD:
G=0 Límite 16 bits .Máximo 64 k
G=1 Límite con 20 bits multiplicado por 4096
Máximo 4Gbytes.
135
Introducción al modo protegido
SEGMENTOS NORMALES:
DATOS Y CODIGO
SEGMENTOS ESPECIALES:
DE TABLA LDT
DE ESTADO DE TAREA
DE CALL GATE
DE TASK GATE
DE INTERRUPT GATE
DE TRAP GATE
136
Introducción al modo protegido
Byte de derechos de acceso en Segmentos normales:
7 6 5 4 3 2 1 0
DATOS P DPL 1 0 ED W A
7 6 5 4 3 2 1 0
CODIGO P DPL 1 1 C R A
P = Presente (P = 1 Segmento en memoria)
DPL = Descriptor privilege level
Bits 4,3 = 10 Æ Segmento normal de datos
Bits 4,3 = 10 Æ Segmento normal de codigo
ED = Expand down (=1 Æ Pila)
W = 0 Æ Escritura prohibida
R = 0 Æ Lectura prohibida
C = Conforming (C = 1 permite accesos sin el nivel de privilegio)
A = Accedido
137
Introducción al modo protegido
Segmento de pila
7 6 5 4 3 2 1 0
DATOS P DPL 1 0 ED W A
Zona permitida si ED = 1
Zona permitida si ED = 0
Base del segmento
138
Introducción al modo protegido
Tablas de Descriptores
Se ejecuta:
Decide que segmento presente puede ser borrado
Carga al segmento solicitado y pone a 1 el bit P
de su descriptor
140
Introducción al modo protegido
Memoria Plana
141
Introducción al modo protegido
TIPOS DE DESCRIPTORES
TIPO DE DESCRIPTOR
142
Introducción al modo protegido
ACCESO A MEMORIA A TRAVES DE UNA CALL GATE
CALL GATE:
SELECTOR SEGMENTO DESTINO
OFFSET DESTINO
CUENTA DWORDS
DESCRIPTOR:
BASE DEL SEGMENTO
143
Introducción al modo protegido
CALL GATE
80286
RESERVADO
P DPL 0 0 1 0 0 X X X DWORD CONT
SELECTOR DESTINO Y X X
OFFSET DESTINO
80386
144
Introducción al modo protegido
CONMUTACION DE TAREAS
7 6 5 4 3 2 1 0
DATOS P DPL 1 0 ED W A
7 6 5 4 3 2 1 0
TSS P DPL 0 0 0 B 0
145
Introducción al modo protegido
TSS OBLIGATORIO
Puntero a mapa de E/S per T 64
Resto de Registros
147
Introducción al modo protegido
Acceso a una interrupción (INT N) partiendo de IDTR
TABLA IDT
Puerta de Descriptor
interrupción Segmento de codigo
BASE
Segmento de
IDTR Código accedido
BASE LIMITE
148
Introducción al modo protegido
Descriptores de TASK GATE, INTERRUPT GATE y TRAP GATE
D
NO USADO P P 0 0 1 0 1 NO USADO
L
149
Paginación
DIRECCION LOGICA
UNIDAD DE SEGMENTO:OFFSET
EJECUCION
DIRECCION LINEAL
SEGMENTACION (56F987CCH)
PAGINACION
DIRECCION FISICA
(3A8C9757H)
150
Paginación
-Está activada si el bit 31 del registro CR0 es 1.
-Se trata de un mecanismoo de traslación de direcciones.
-Maneja zonas de memoria llamadas páginas (4Kb).
-Es mas eficaz la protección de acceso a las páginas que
a los segmentos.
Memoria virtual basada en páginas
20 bits 12 bits
151
MECANISMO DE PAGINACION
TLB(Translation lookaside Buffer)
4kb
Encuentra la
Posición de
DIRECTORIO TABLA OFFSET memoria
12 PAGINA
10 DIRECTORIO 10 4kb ACCEDIDA
DE Encuentra
PAGINAS un PTE
X4 4kb X4 4kb
1 byte
Encuentra un PDE 4kb
4kb
4bytes
CR3
CR2
4bytes
CR1
1 CR0 152
Paginación
MECANISMO DE PAGINACION
PDE
PTE
31 12 11 10 9 65 2 1 0
Dirección de la páginas LIBRE DA U/SR/W P
153
80386 (1986) DX
154
80386 (SX)
155
Registros del 80386
Registros generales
EAX AH AX AL
Registros de Segmento
EBX BH BX BL
CS
ECX CH CX CL
DS
EDX DH DX DL
SS
EBP BP
ES
ESI SI
FS
EDI DI
GS
ESP SP
16 bits 16 bits
EFLAGS
EIP
156
Registros del 80386
FLAGS
31 17 16 15 0
VR
MF Igual que en el 80286
CONTROL
20 bits 12 bits
157
Ejecucion en pipeline
158
80486 (1989)
159
80486 (1989)
µP 80486
80387
µP 80386
CACHE
(8kb)
160
80486 (1989)
Memoria cache : Memoria estática (rápida) de
tipo asociativo (CAM) memoria direccionable
por su contenido:
ETIQUETA LINEA CACHE
253
254
255
NO
SE COMPARA CON EL TAG
SELECCIONA UN SET INTERVIENEN
509
510
511
NO
SE COMPARA CON EL TAG
SELECCIONA UN SET INTERVIENEN
DIRECTORIO
128 ENTRADAS MEMORIA CACHE DE 8 kB
Linea de 16 bytes Linea de 16 bytes Linea de 16 bytes Linea de 16 bytes Linea de 16 bytes 128
SETS
SI
SI ¿B0 = 0? NO
¿B1 = 0? NO
SI ¿B2 = 0?
NO SI
31 12 11 10 9 5 4 3 2 1 0
Dirección de la página LIBRE D A PCD PWT U/S R/W P
166
80486
Memoria cache del 80486
Cacheabilidad de las páginas
PDE
80486
31 12 11 10 9 6 5 4 3 2 1 0
Dirección de la tabla de páginas LIBRE D A PCD PWT U/S R/W P
PTE
80486
31 12 11 10 9 5 4 3 2 1 0
Dirección de la página LIBRE D A PCD PWT U/S R/W P
168
80486
Memoria cache del 80486
Cacheabilidad de las páginas
169
Registros del 80486
31 FLAGS 18 17 16 15 0
AV R
CM F Igual que en el 80286
CONTROL
20 bits 12 bits
170
Registros del 80486
31 FLAGS 18 17 16 15 0
AV R
CM F Igual que en el 80286
171
Registros del 80486
CONTROL
20 bits 12 bits
25 MHz
x2 50 MHz
80486 DX2 50
33 MHz
x2 66 MHz
80486 DX2 66
33 MHz
x3 100 MHz
80486 SX
174
PENTIUM
CACHE DE INSTRUCCIONES
BUFFER DE PREFETCH
DECODIFICADOR DE INSTRUCCIONES
PIPELINE U
PIPELINE V FPU
CACHE DE DATOS
PREFETCHER
BUFFER BUFFER
DECISION DE PREFETCH
DE PREFETCH
SIMPLE
(ETAPA 2) (ETAPA 2)
REGISTROS
CACHE DE DATOS
176
PENTIUM
EJECUCION SUPERESCALAR
IF
I1 es simple
AND I2 también es simple
AND Destino de I1 no es Fuente de I2
AND Destino de I2 no es Destino de I1
THEN
I1 se envía al PIPELINE U
I2 se envía al PIPELINE V
177
PENTIUM
00
Fallo
Acierto
178
PENTIUM
CACHE DE INSTRUCCIONES
32 BYTES
4 kB 128 LINEAS
4 kB 128 LINEAS
ACCESO A LA CACHE:
Se intenta acceder a la dirección:
TAG LINEA DW
Cada byte tiene su propio bit de paridad
179
PENTIUM
CACHE DE datos
32 BYTES
4 kB 128 LINEAS
4 kB 128 LINEAS
ACCESO A LA CACHE:
Se intenta acceder a la dirección:
TAG LINEA DW
Cada byte tiene su propio bit de paridad
180
VIDEO
Modo Resol box coloresBuffer Páginas
00 T 40x25 8x8 2 2k B8000
01 T 40x25 8x8 16 2k B8000
02 T 80x25 8x8 2 2k B8000
03 T 80x25 8x8 16 4k B8000
04 G 320X200 8x8 4 16k B8000
05 G 320x200 8x8 2 16k B8000
06 G 640x200 8x8 2 16k B8000
07 T 80x25 9x14 2 4k B0000 1
08 G 160x200 8x8 16k B8000
09 G 320x200 8x8 32k B8000
0A G 640x200 8x8 32k B8000
0D G 320x200 8x8 16 8k A0000 8
0E G 640x200 8x8 16 16k A0000 4
0F G 640x350 8x14 2 28k A0000 2
10 G 640x350 8x14 16 28k A0000 2
11 G 640x480 8x16 2 38k A0000 1
12 G 640x480 8X16 16 38k A0000 1
13 G 320x480 8x8 256 38k A0000 1
181
VIDEO
Modo Resol box coloresBuffer Páginas
C0 C1 C2 C3 . . . . . . . . . . . . . . . C79
. C80 C81 C82 C83 . . . . . . . . . . . . . . . C159
.
4Kb
.
.
.
Atributo 3 B0007H
Carácter 3 B0006H
Atributo 2 B0005H
Carácter 2 B0004H
Atributo 1
Carácter 1
Atributo 0
B0003H
B0002H
B0001H C1920 . . . . . . . . . . . . . . . . . . . . . C1999
Carácter 0 B0000H
185
VIDEO
MDA (Monochrome Display Adapter) modo 7
8
El byte de atributo en MDA
7 6 5 4 3 2 1 0
1 = Brillo
0 = No Brillo
1 = Intermitente
14
0 = Fijo
000 0 0 0 Æ Oculto
000 0 0 1 Æ Subrayado
000 1 1 1 Æ Normal
000 0 0 0 Æ Inverso
186
VIDEO
CGA (Color Graphics Adapter)
B8FFFH
Libre Modo 3 (Texto 80x25 16 colores)
B8FA0H
At 1999 B8F9FH
Car 1999 B8F9EH
At 1998 B8F9DH
Car 1998 B8F9CH
Ci Carácter i
Atributo
Carácter
Atributo Página 0
Carácter
. C0 C1 C2 C3 . . . . . . . . . . . . . . . C79
4Kb
. C80 C81 C82 C83 . . . . . . . . . . . . . . . C159
.
.
Atributo 3 B8007H
Carácter 3 B8006H
Atributo 2 B8005H
Carácter 2 B8004H
Atributo 1 B8003H
Carácter 1 B8002H
Atributo 0 B8001H C1920 . . . . . . . . . . . . . . . . . . . . . C1999
Carácter 0 B8000H
000 0 0 0 Æ Oculto
000 0 0 1 Æ Subrayado
000 1 1 1 Æ Normal
000 0 0 0 Æ Inverso
188
VIDEO
CGA (Color Graphics Adapter)
El byte de atributo en CGA (Modos 1 y 3)
r g b I R G B
7 6 5 4 3 2 1 0 Color del fondo
0000 Æ Negro
0001 Æ Azul
0010 Æ Verde
0011 Æ Ciano
0100Æ Red
Color del Primer plano 0101 Æ Magenta
000 Æ Negro 0110 ÆMarrón
001 Æ Azul 0111 Æ Gris Brillante
010 Æ Verde 1000 Æ Gris oscuro
011 Æ Ciano 1001 Æ Azul Brillante
100Æ Red 1010 Æ Verde Brillante
101 Æ Magenta 1011 Æ Ciano Brillante
110 ÆMarrón 1100Æ Red Brillante
111 Æ Gris Brillante 1101 Æ Magenta Brillante
1110 ÆAmarillo
1 = Intermitente 1111 Æ Blanco 189
0 = Fijo
VIDEO
CGA (Color Graphics Adapter)
Modo 4 (Gráfico 320x200 4 colores)
Cada color viene definido por dos bits
Cada byte define a cuatro pixels
80 bytes definen una línea de pantalla (320 pixels)
Fila 0
B804FH
80 Bytes
B8003
B8002
B8001
B8000
190
VIDEO
CGA (Color Graphics Adapter)
LIBRE
Modo 4 (Gráfico 320x200 4 colores)
80 Bytes
Filas
Impares
80 Bytes
80 Bytes Fila 0
Fila 1
Fila 2
Fila 3
Fila 4
Fila 5
LIBRE Fila 6
Fila 7
80 Bytes
Filas
Pares
80 Bytes
80 Bytes Fila198
Fila199
191
VIDEO
CGA (Color Graphics Adapter)
Modo 4 (Gráfico 320x200 4 colores)
BBFFF RESERVADO 4 Colores a elegir de entre dos
BBF40 192 bytes
BBF3F paletas posibles:
Paleta 0
00 Æ Negro
Filas 1, 3, 5, 7…….199 01 Æ Verde
8000 bytes
10 Æ Rojo
11 Æ Marrón
BA000
B9FFF RESERVADO Paleta 1
B9F40 192 bytes
B9F3F 00 Æ Negro
01 Æ Ciano
10 Æ Magenta
Filas 0, 2, 4, 6…198 11 Æ Blanco
8000 bytes
7 6 5 4 3 2 1 0
Registro de
Selección de color
B8000 192
Puerto 3D9
VIDEO
EGA (Enhanced graphics adapter)
*Compatibilidad con todos los modos de video anteriores
193
VIDEO
EGA (Enhanced graphics adapter)
EGA y luego VGA utiliza memoria en la propia tarjeta gráfica.
La memoria en la tarjeta adopta la disposición denominada:
“Planos de bits”
Pixel en pantalla
64kb 4 Memorias de 64 Kb
en paralelo
64kb
64kb Un bit por plano (4
64kb en total) definen un
pixel
194
VIDEO
Paleta en una tarjeta EGA
Pixel de 4 bits
Apunta a un elemento
de la paleta
Paleta:
16 registros de 6 bits
Un elemento de la paleta B
Colores primarios
G
(mas intensos)
R
b
Colores secundarios
g
(menos intensos) 195
r
VIDEO
Paleta en una tarjeta VGA
Paleta interna:
16 registros de 6 bits
Registro de selección de color
Apunta a un elemento
de la paleta
4 o 6 bits 4 o 2 bits
196
Salidas analógicas al monitor
R G B
VIDEO
Paleta en una tarjeta VGA
Paleta externa:
256 registros de 18 bits
197
VIDEO
EGA (Enhanced graphics adapter)
El µP accede a la RAM de vídeo (Lectura o escritura)
a) Lectura
RAM El contenido de los cuatro planos pasa a los LATCHS
4 LATCHS 4 Memorias de 64 Kb
(uno por plano) en paralelo
FFFF
64kb AFFFF 64kb 64kb 64kb 64kb
RAM
de
Vídeo
0000
A0000
198
VIDEO
EGA (Enhanced graphics adapter)
Acceso a los bit planes
RAM
64Kb
AFFFF 64Kb
64 Kb
64 Kb
µP 64Kb
A0000
Lectura:
El µP efectúa una lectura en memoria
Debe acceder a la RAM de vídeo (Segmento A)
Lo que recibe es algo que procede de los LATCHS
199
VIDEO
EGA (Enhanced graphics adapter)
Acceso a los bit planes
RAM
64Kb
AFFFF 64Kb
64 Kb
64 Kb
µP 64Kb
Lectura:
A0000 Siempre que se efectúa una lectura en una posición
de memoria dentro de la RAM de vídeo se cargan los 4
LATCHS con el contenido de la misma posición de
memoria en los cuatro planos
200
VIDEO
Lectura:
Siempre que se efectúa una lectura en una posición
EGA
de memoria dentro de la RAM de vídeo se cargan los 4
LATCHS con el contenido de la misma posición de Acceso a los bit planes
memoria en los cuatro planos:
64Kb
MOV AX,0A000H
MOV DS,AXRAM 64Kb
MOV AL, [3CF2] 64 Kb
64 Kb
AFFFF
µP 64Kb 3CF2
3CF2
A3CF2 3CF2
3CF2
A0000
201
VIDEO
EGA / VGA
Escritura:
MOV AX,0A000H
MOV DS,AX AL [A3CF2]
Acceso a los bit planes
MOV [3CF2], AL 64Kb
RAMA3CF2 dentro de la RAM de vídeo
El µP escribe en la posición 64Kb
El contenido de los cuatro Latchs (modificado) se escribe en la 64 Kb
posición 3CF2 en los cuatro bit planes 64 Kb
AFFFF
µP 64Kb 3CF2
3CF2
A3CF2 3CF2
3CF2
A0000
202
VIDEO
EGA y VGA
Puertos asociados
Controlador gráfico:
Puertos 3CE y 3CF (Nº de registro-valor)
Nº registro Æ Nombre
00 Set / Reset
01 Enable Set / Reset
02 Color compare
03 Function Select
04 Read map select
05 mode
06 Miscelaneous
07 Color Don’t care
08 Bit mask
203
VIDEO
EGA y VGA
Puertos asociados
Controlador gráfico:
Puertos 3CE y 3CF (Nº de registro-valor)
Nº registro Æ Nombre
Registro de modo
00
01
02 Modos de
03 Modos de Escritura:
04 Lectura: 00
05 mode 0 01
06 1 10
11
07
08
204
VIDEO
EGA /VGA
Acceso a los bit planes
Lectura 0 64Kb
RAM 64Kb
64 Kb
1) El µP lee en la dirección A3CF2
2) Los contenidos de las direcciones 3CF2 de los 4 Bit planes 64 Kb
AFFFF
se carga en los 4 Latchs.
3) El contenido del Latch indicado en el puerto Read Map se
recibe en el µP
µP 64Kb 3CF2
3CF2
A3CF2 3CF2
3CF2
3
2
1
0 3
2
1
0
205
VIDEO
EGA /VGA
Acceso a los bit planes
Lectura 1 64Kb
RAM 64Kb
64 Kb
1) El µP lee en la dirección A3CF2
2) Los contenidos de las direcciones 3CF2 de los 4 Bit planes 64 Kb
AFFFF
se carga en los 4 Latchs.
3) El byte recibido en el µP indica la presencia o ausencia del
color pedido en el puerto “Color Compare” con los 8 pixels
indicados en los latchs.
3CF2
A3CF2 3CF2
Color Don’t Care
3CF2
1 1 1 1
Color Compare
A0000 1 1 0 1
3 1 1 0 0 1 1 0 1
2 1 0 0 0 0 1 1 1
1 0 0 1 1 0 0 0 0
0 1 1 0 1 1 1 0 1 3
2
1 0 0 0 0 1 0 1 1
0
206
VIDEO
EGA /VGA
Acceso a los bit planes
Lectura 1 64Kb
RAM 64Kb
64 Kb
1) El µP lee en la dirección A3CF2
2) Los contenidos de las direcciones 3CF2 de los 4 Bit planes 64 Kb
AFFFF
se carga en los 4 Latchs.
3) El byte recibido en el µP indica la presencia o ausencia del
color pedido en el puerto “Color Compare” con los 8 pixels
indicados en los latchs.
3CF2
A3CF2 3CF2
Color Don’t Care
3CF2
1 0 1 1
Color Compare
A0000 1 1 0 1
3 1 1 0 0 1 1 0 1
2 1 0 0 0 0 1 1 1
1 0 0 1 1 0 0 0 0
0 1 1 0 1 1 1 0 1 3
2
1 1 0 0 1 1 0 1 1
0
207
VIDEO
Acceso a los bit planes EGA /VGA
Modos de escritura
208
VIDEO
EGA
EGA/ VGA
/VGA
Escritura
1) Previamente auna escritura se procede a una lectura
que carga los latchs
64Kb
64Kb 64Kb
64 Kb 64Kb
64 Kb
64 Kb 2) Después de una
64 Kb
modificación se procede a la
escritura del contenido de los
4 Latchs en los 4 planos
3CF2
3CF2
3CF2
3CF2
3 1 1 0 0 1 1 0 1
2 1 0 0 0 0 1 1 1
3 0 1 1 0 1 1 0 0
1 0 0 1 1 0 0 0 0
2 0 0 1 0 1 1 1 0
0 1 1 0 1 1 1 0 1
3 1 0 0 1 1 1 0 0 0
2 0 0 1 1 1 1 1 0 0
3
1 2
0 1
0 209
VIDEO
Acceso a los bit planes EGA /VGA
Controlador gráfico:
Puertos 3CE y 3CF (Nº de registro-valor)
08
210
VIDEO
Acceso a los bit planes EGA /VGA
Controlador gráfico:
Puertos 3CE y 3CF (Nº de registro-valor)
211
VIDEO
Acceso a los bit planes EGA /VGA
Se encuentra en el registro Secuencer
Map Mask
212
VIDEO
Acceso a los bit planes EGA /VGA
Es el registro nº 3 del Controlador Gráfico
00 = Sustituir
01 = AND
10 = OR
11 = XOR
213
Acceso a los bit planes
VIDEO EGA /VGA
Escritura 0
1) El µP efectúa una lectura en (Por Ejemplo)
la dirección A000H:3CF2H. Como
consecuencia el contenido de la dirección
3CF2H de los cuatro planos se carga en los
cuatro Latchs.
2) Se efectúa una operación algebraica entre
los bits no enmascarados de los cuatro
Latchs y un operando.
3) El µP efectúa una escritura en (Por
Ejemplo) la dirección A000H:9FF4H. Como
consecuencia el contenido de los cuatro
Latchs se carga en la dirección 9FF4H de los
cuatro planos
214
Acceso a los bit planes
VIDEO EGA /VGA
Escritura 0
El operando puede ser:
a) Los cuatro bits menos significativos del
registro Set / Reset. Para ello el registro
Enable Set / Reset debe contener XXXX1111.
Tendremos un bit por plano (por cada Latch)
215
VIDEO EGA /VGA
Escritura 0
Primer caso: El operando etá formado por los cuatro 64Kb
bits menos significativos del registro SET/RESET.
64Kb
El registro Set/Reset está habilitado.
Tendremos un bit operando por plano
3 64 Kb
64 Kb
9FF4
9FF4
9FF4
7 6 5 4 3 2 1 0 9FF4
x x x x x x x x Byte enviado por el µP
7 6 5 4 3 2 1 0
OR 1 0 Function Select
7 6 5 4 3
1
2
1
1
1
0
1
Enable
Set / Reset
1
7 6 5 4 3 2 1 0
2 7 6 5 4 3
0
2
1
1
0
0
1 Set / Reset
1 1 0 1 Map Mask 3CF2
3CF2
3 1 1 0 0 1 1 0 1 3CF2
3 1 1 0 0 1 1 0 1
2 1 0 0 0 0 1 1 1 3CF2
2 1 1 0 1 0 1 1 1
1 0 0 1 1 0 0 0 0 OR con 0101 1 0 0 1 1 0 0 0 0
0 0 0 1 0 1 1 1 0 0 3
1 1 0 1 1 1 0 1
de los bits no 2
enmascarados 1
1 1 0 1 0 1 0 1 Bit Mask 0
216
VIDEO EGA /VGA
Escritura 0
Segundo caso: El operando etá formado por los ocho 64Kb
bits del byte enviado por el µP en la operación de
64Kb
escritura.
El registro Set/Reset está deshabilitado.
Tendremos un bit operando por columna 3 64 Kb
64 Kb
9FF4
9FF4
9FF4
7 6 5 4 3 2 1 0 9FF4
0 1 1 1 0 1 0 0 Byte enviado por el µP
7 6 5 4 3 2 1 0
7 6 5 4 3
0
2
0
1
0
0
0
Enable
Set / Reset
1
7 6 5 4 3 2 1 0
2 7 6 5 4 3
x
2
x
1
x
0
x Set / Reset
1 1 0 1 Map Mask 3CF2
3CF2
3 1 1 0 0 1 1 0 1 3CF2
3 0 1 0 0 1 1 0 0
2 1 0 0 0 0 1 1 1 3CF2
2 0 1 0 1 0 1 1 0
0 0 1 0 1 1 1 0 0
0 0 1 0 1 1 1 0 0 3
de los bits no 2
enmascarados 1
0
1 1 0 1 0 1 0 1 Bit Mask
217
VIDEO EGA /VGA
Escritura 1
Es el modo de escritura mas simple. 64Kb
a) El µP efectúa una operación de lectura en (P. Ej.) la
64Kb
dirección A3CF2H. La consecuencia es que el contenido de la
dirección 3CF2 de los cuatro planos se carga en los cuatro Latchs. 64 Kb
b) El µP efectúa una operación de escritura en (P. Ej.) la 64 Kb
dirección A9FF4H. El contenido de los cuatro Latchs se escribe en las
posiciones 9FF4H de los cuatro planos.
2 9FF4
9FF4
9FF4
9FF4
Fundamentalmente este
3CF2
modo de escritura traslada
el contenido de memoria de 3 1 1 0 0 1 1 0 1
1 3CF2
3CF2
una posición a otra 2 1 0 0 0 0 1 1 1 3CF2
1 0 0 1 1 0 0 0 0
0 0 1 0 1 1 1 0 0 3
2
1
0
218
VIDEO EGA /VGA
Escritura 2
64Kb
El operando ahora lo constituyen los cuatro bits
64Kb
menos significativos del byte enviado por el µP en la
operación de escritura.
3 64 Kb
64 Kb
9FF4
9FF4
9FF4
7 6 5 4 3 2 1 0 9FF4
x x x x 0 1 1 1 Byte enviado por el µP
7 6 5 4 3 2 1 0
1
6 5 4 3 2 1 0
1 1 0 1 Map Mask
2 3CF2
3CF2
3CF2
3 1 1 0 0 1 1 0 1
3 1 1 0 0 1 1 0 1
2 1 0 0 0 0 1 1 1 3CF2
2 0 1 0 1 0 0 1 0
0 0 0 1 0 1 1 1 0 0 3
1 0 0 0 1 0 0 1
de los bits no 2
enmascarados 1
1 1 0 1 0 1 0 1 Bit Mask 0
219
Escritura 3
VIDEO VGA
El operando ahora lo constituyen los cuatro bits
menos significativos del registro Set /Reset.
64Kb
La máscara de bits efectiva se obtiene mediante AND
entre el contenido del Bit Mask y el byte enviado por el 64Kb
µP
3 64 Kb
64 Kb
9FF4
9FF4
9FF4
7 6 5 4 3 2 1 0 9FF4
sustituir 0 0 Function Select
7 6 5 4 3 2 1
1 0
7 6 5 4 3 2 1 0 Enable 0 1 1 1 0 1 0 0 Byte enviado por el µP
x x x x Set / Reset AND
1 1 0 1 0 1 0 1 Bit Mask
7 6 5 4 3 2 1 0
2 0 0 1 1 Set / Reset
0 1 0 1 0 1 0 0 3CF2
3CF2
3 1 1 0 0 1 1 0 1 3CF2
3 1 0 0 0 1 0 0 1
sustituir con 0011 2 1 0 0 0 0 1 1 1 3CF2
2 1 0 0 0 0 0 1 1
1 0 0 1 1 0 0 0 0
1 0 0 1 1 0 0 0 0
los bits no 0 0 1 0 1 1 1 0 0 3
0 0 1 0 1 1 1 0 0
enmascarados 2
1
7 6 5 4 3 2 1 0 0
1 1 0 1 Map Mask
220
VIDEO
Modos de texto en EGA / VGA
Modo 3 en el ejemplo
RAM de VIDEO
64Kb
64Kb 64Kb
64 Kb
C0 C1 C2 C3 C78 C79 64 Kb
C78 C79 Plano 2
Plano 1 Plano 0
Atributo3 B8007H
Carácter3 B8006H
Atributo2 B8005H
Carácter2 B8004H
Atributo1 B8003H Atributo3
Carácter1 B8002H Atributo2 Carácter3
Atributo0 B8001H Atributo1 Carácter2
Carácter0 B8000H Atributo0 Carácter1
Carácter0
EGA VGA
Plano 2 Plano 2