Direccionamiento modo real

Solo disponible en BuenasTareas
  • Páginas : 6 (1402 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de octubre de 2010
Leer documento completo
Vista previa del texto
Los procesadores 80X86 en el modo real

Modo básico de funcionamiento del 8086.

Emulado por todos los procesadores de la familia XX86.

Mantenido por compatibilidad.

No pueden utilizarse todos los recursos de la CPU. Máxima cantidad de memoria direccionable: 1 Mbyte -> 20 bits. Modo utilizado por MS-DOS cuando no se instalan controladores de memoria.

Los procesadores 80X86 en elmodo real

15

87

0

AH BH CH DH

AX BX CX DX SP BP SI DI CS DS ES SS IP FLAGS

AL BL CL DL

Acumulador Base Contador Datos Puntero de pila Puntero base Registro de índice fuente Registro de índice destino Segmento de código Segmento de datos Segmento extra Segmento de pila Puntero de instrucciones Registro de estado

Los procesadores 80X86 en el modo real

Registro de estado(flags)

15
OF DF IF TF SF ZF AF PF

0
CF

CF Acarreo OF Desbordamiento ZF Cero SF Signo PF Paridad AF Ajuste decimal DF Dirección de recorrido de cadenas IF Máscara de interrupción TF Ejecución paso a paso FLAGS DE CONTROL FLAGS DE ESTADO

Los procesadores 80X86 en el modo real
SEGMENTOS: Registros internos de 16 bits. No pueden direccionar toda la memoria (1 Mbyte) Un segmento es unbloque de memoria de 64 Kbytes, definido por su base.

Base del segmento

64

Memoria

K

by te

s

Los procesadores 80X86 en el modo real
Una dirección de memoria absoluta se expresa como un desplazamiento (offset) dentro de un segmento

Desplazamiento (offset)

Dirección física

Registro de segmento

Memoria

En general las direcciones de memoria se presentan como: BASE :OFFSET

Los procesadores 80X86 en el modo real
Obtención de la dirección efectiva: OFFSET (16 bits)

+
BASE SEGMENTO (16 bits)

Desplazado 4 bits

=
DIRECCIÓN EFECTIVA (20 bits) Existen muchas formas de expresar una dirección: Ejemplo: dirección efectiva absoluta : F3B5A BASE F3B5 F3B0 F300 F200 : : : : OFFSET 000A 005A 0B5A 1B5A

En general existen 4096 formas diferentes de expresaruna dirección

Los procesadores 80X86 en el modo real

Registros de segmento: Existen 4 registros de segmento: CS, DS, ES y SS CS DS ES SS Contiene el código del programa Destinado a contener datos Destinado también a contener datos Contiene la pila del programa

Los segmentos pueden colocarse de cualquier modo en la memoria:
Contiguos Separados Superpuestos

CS DS ES SS

Losprocesadores 80X86 en el modo real

Generación de las direcciones:

BASE CICLOS DE “FETCH” ACCESOS A LA PILA ACCESOS A DATOS REGISTRO CS REGISTRO SS
CUALQUIER REGISTRO DS, CS, ES o SS

OFFSET REGISTRO IP REGISTRO SP
SEGÚN MODO DE DIRECCIONAMIENTO

Para pequeñas aplicaciones que necesiten poca memoria se puede utilizar un solo segmento haciendo: CS = DS = ES = SS Este es el caso de los ficheros*.COM de MS-DOS

Los procesadores 80X86 en el modo real

MODOS DE DIRECCIONAMIENTO

MODO

FORMATO DEL OPERANDO reg valor (dato) variable (desp) [BX] [BP] [DI] [SI] [BX + desp] [BP + desp] [DI + desp] [SI + desp] [BX + SI + desp] [BP + SI + desp] [BX + DI + desp] [BP + DI + desp]

SEGMENTO POR DEFECTO NINGUNO NINGUNO DS DS SS DS DS DS SS DS DS DS SS DS SS

A REGISTRO INMEDIATO DIRECTOINDIRECTO POR REGISTRO

RELATIVO A BASE

INDEXADO

INDEXADO A BASE

Los procesadores 80X86 en el modo real

Para utilizar otro registro de segmento que no sea el establecido por defecto se utiliza el llamado: PREFIJO DE SEGMENTO

REGISTRO BP, BX, SI, DI IP SP AX,CX,DX

SEGMENTO CUALQUIERA SIEMPRE CS SIEMPRE SS NINGUNO

Se escribe el registro deseado seguido de “:” Ejemplo:

MOVAX, [SI+desp] MOV AX, ES:[SI+desp]

relativo a DS relativo a ES

LOS PROCESADORES XX86 EN EL MODO REAL El juego de instrucciones en el modo real
Instrucciones de movimiento de datos
MOV dst, fnt Destino : Registro o posición de memoria Fuente : Registro, posición de memoria o dato inmediato PROHIBIDO: Dato inmediato a reg. de segmento, Destino=CS Destino y fuente ambos en memoria

POP...
tracking img