Академический Документы
Профессиональный Документы
Культура Документы
15 87 0
AH AX AL Acumulador
BH BX BL Base
CH CX CL Contador
DH DX DL Datos
SP Puntero de pila
BP Puntero base
SI Registro de índice fuente
DI Registro de índice destino
CS Segmento de código
DS Segmento de datos
ES Segmento extra
SS Segmento de pila
IP Puntero de instrucciones
FLAGS Registro de estado
Los procesadores 80X86 en el modo real
15 0
OF DF IF TF SF ZF AF PF CF
CF Acarreo
OF Desbordamiento
ZF Cero FLAGS DE
SF Signo ESTADO
PF Paridad
AF Ajuste decimal
DF Dirección de recorrido de cadenas
FLAGS DE
IF Máscara de interrupción
CONTROL
TF Ejecución paso a paso
Los procesadores 80X86 en el modo real
SEGMENTOS:
Base del
segmento
Memoria
Los procesadores 80X86 en el modo real
Desplazamiento Dirección
(offset) física
Registro de
segmento Memoria
BASE : OFFSET
Los procesadores 80X86 en el modo real
+ Desplazado
4 bits
BASE SEGMENTO (16 bits)
=
DIRECCIÓN EFECTIVA (20 bits)
Ejemplo:
BASE OFFSET
F3B5 : 000A
F3B0 : 005A
F300 : 0B5A
F200 : 1B5A
Registros de segmento:
CS
DS
ES
SS
Los procesadores 80X86 en el modo real
BASE OFFSET
CS = DS = ES = SS
MODOS DE DIRECCIONAMIENTO
PREFIJO DE SEGMENTO
REGISTRO SEGMENTO
Ejemplo:
PROHIBIDO:
Dato inmediato a reg. de segmento,
Destino=CS
Destino y fuente ambos en memoria
LDS reg, mem Lee una doble palabra de memoria, los primeros 16 bits
LES reg, mem van al registro y los siguientes a ES o DS
Instrucciones aritméticas
4 5 0100 0101
+ ADD +
1 6 0001 0110
5 B 0101 1011
Sin sentido en BCD
flag AF
4 9 0100 1001
+ ADD +
1 8 0001 1000
6 1 0110 0001
Resultado erróneo en BCD
AJUSTE DECIMAL EN BCD
DAA comprueba:
Dec. Unid.
Es equivalente
- 0000 1010
a sumar 6
+ 0001 0000
+ 0000 0110
4 9 4 5
+ ADD + ADD
1 8 1 6
6 1 DAA 5 B DAA
6 7 6 1
LOS PROCESADORES XX86 EN EL MODO REAL
Instrucciones lógicas
Generalmente cnt es CX
LOS PROCESADORES XX86 EN EL MODO REAL
Bucles
Comparación
dst - fnt
CMP dst,fnt
Modifica los flags en función del resultado
LOS PROCESADORES XX86 EN EL MODO REAL
Otras
CLC Poner a 0 el flag CF
CLD Poner a 0 el flag DF
CLI Poner a 0 el flag IF (Prohibir todas las interrupciones)
STC Poner a 1 el flag CF
STD Poner a 1 el flag DF
STI Poner a 1 el flag IF (Permitir todas las interrupciones)
CMC Complementar el flag CF
Manejo de interrupciones