Sie sind auf Seite 1von 4

SEGMENTOS Y DIRECCIONAMIENTOS

SEGMENTO: Un rea especial en un programa que inicia en un lmite de un


prrafo, esto es en una localidad regularmente divisible entre 16 o 10 hex.
Puede estar ubicado casi en cualquier lugar de la memoria , y en modo real puede
ser hasta de 64k.
Se necesita tanto espacio como el programa requiera para su ejecucin.

Los tres segmentos principales son los segmentos de cdigo, de datos, y de la


pila.

Segmento de cdigo (CS) Contiene las instrucciones de la mquina que son


ejecutadas.
Segmento de datos(DS) Contiene datos, constantes y rea de trabajo definidos
por el programa.
Segmento de la pila(SS) contiene los datos y direcciones que necesitamos para
guardar temporalmente o para el uso de sus llamadas subrutinas.

LIMITES DE LOS SEGEMENTOS


Los registros de segmentos contienen la direccin inicial de cada segmento. Los
registros y los segmentos no necesariamente estn

Ss Direccin

Ds Direccin Segmento de la pila


Reubicable en
Segmento de datos memoria
Cs Direccin

Registros de segmentos
Segmento de cdigo

memoria

DESPLAZAMIENTO DE SEGMENTOS
En un programa , todas las localidades de memoria estn referidas a una
direccin inicial de segmento. La distancia en bytes desde la direccin del
segmento se define como desplazamiento(offset).
CAPACIDAD DE DIRECCIONAMIENTO

Para direccionar un megabyte en memoria se requiere una agrupacin de bits


de la cual pueda obtenerse un megabyte de combinaciones posibles, esta
agrupacin es de 20 bits o sea 2 *10 a la 20. Como no existe algun registro de 20
bits se requiere un megadisco para obtenerlo. Para calcular la direccin fisica
que se requiera accesar (leer/ escribir) se obtiene de la siguiente forma:

Direccin fsica Real = nmero de segmentos * 10 + offset


Offset = al desplazamiento.
El nmero de segmentos se obtiene del contenido de algn registro obtenido ya
sea el DS;ES;SS;CS.
El desplazamiento: se obtiene de la distancia que existe, el inicio del segmento a
la localidad que queremos accesar.

Direccionamiento de 8086/8088

Los registros de estos micro procesadores proporcionan 16 bit .


Los 4 bits de la extrema derecha de su direccin son cero, una direecin es
almacenada en un registro de segmentos y la computadora asume los cuatro
ltimos bits de la derecha como ceros (un dgito hexadecimal),como nnnn[0]hex.
Ahora FFFF[0]H permite direccionar hasta 1,048,560 bytes. Si llegara a existir una
duda decodifique cada F hex como el 1111 binario, considere los 4 timos bits de
la derecha como ceros y sume los valores de los bits a 1.

Direccionamiento 80286

En modo real, el procesador maneja el direccionamiento de la misma manera que


lo hace el 8086. En modo protegido, el procesador utiliza 24bits para
direccionamiento de manera que FFFFF[0] permite direccionar hasta 16 millones
de bytes. Los registros de segmento actun como seleccionadores para accesar
una direccin de segmento de 24 bits de la memoria y sumar este valor a un
desplazamiento de direccin de 16 bits.

Direccionamiento 80386/486/586.

En modo real manejan el direccionamiento de forma parecida a como lo hace un


8086. En modo protegido, los procesadores utilizan48 bits para el
direccionamiento, lo que permite direcciones de segmento de hasta 4 mil millones
de bytes. Los registros de segmento de 16 bits actan como seleccionadores para
el acceso a direcciones de segmentos de 32bits de la memoria.

REGISTROS
Los registros del procesador se emplean para controlar instrucciones en
ejecucin, manejar direccionamientos de memoria y proporcionar capacidad
aritmtica, los registros son direccionables por medio de un nombre.
Para poder programar en cualquier microprocesador es necesario saber con
cuantos registros se cuenta y cual es la funcin de cada uno de ellos.

Descripcion de los componentes:


Este micro procesador trabaja en modo de direccionamiento real pudiendo tener
hasta un megabyte de direcciones , intermamente cuenta con un grupo de 14
registros de 16bits, de los cuales 12 son conocidos como registros de datos y
direccin ,uno es el registro de instruccin (IP) y otro registro de estatus o tambin
llamado registro de banderas ,Los 12 registros de datos y direcciones se dividen
en grupos de 4 registros estos son:

1-REGISTROS DE SEGMENTO: tiene 16 bits de longitud y facilita un rea de


memoria para direccionamiento conocida como el segmento actual.

*CS es el registro de segmento de codigo.- Este registro apunta al inicio del


segmento donde el programa en ejecucin se encuentra situado.

*DS registro de segmento de datos: el registro seala el inicio del segmento de


datos.

*SS registro de segmento de pila o stack: El registro seala el inicio del segmento
Stack.

*ES registro de segmento extra: el registro seala el inicio del segmento extra.
(Algunas operaciones con cadenas y caracteres utilizan este registro para
manejar el direccionamiento de memoria.

**Registros FS y GS son registros extras de segmento en los procesadores 80386


y posteriores.

2-REGISTROS DE PROPOSITO GENERAL: Estos se pueden utilizar como


registros de 16 bits u 8 bits y lo integran los siguientes registros:

*Ax Registro acumulador(principal) : Este registro puede ser utilizado para


almacenamiento de programacin general, sin embargo tambin se utiliza para
operaciones que implican entrada/ salida y la mayor parte de la aritmtica, y
manejo de cadenas de caracteres empleando como AH como byte alto y AL
como byte bajo.

*BX Registro de base: cuando se accesa a la memoria con frecuencia se utiliza


este registro para contener valores de direcciones .Al hacer uso de rutinas de
servicio de interrupcin , este registro debe contener un valor que se usa para
seleccin de opciones, emplea BH Y BL.

*CX registro contador: Este se utiliza durante la operacin de un loop y contiene el


indice de conteo, utiliza CH YCL.
*Dx registro de datos: Este registro es utilizado para almacenamiento general y
tambin en operaciones de multiplicacin y divisin , emplea DH y DL.

3-REGISTROS BASE E INDICES

*SP STACK POINTER: Registro apuntador a la pila , para algunas instruciones


este registro contiene valores de desplazamiento en la pila.

*BP BASE POINTER: Registro apuntador a la base y algunas instrucciones


hacen uso de l como fin de guardar un valor de desplazamiento.

*SI SOURCE INDEX: Registro de indice origen para ciertas instrucciones, este
registro contiene la direccin fuente y con frecuencia las instrucciones que hacen
uso de este registro, no requiere de operandos.

* DI DESTINATION INDEX: Registro apuntador al ndice destino, se dice que es la


contraparte de SI y contiene la direccin destino para algunas instrucciones.

REGISTRO DE BANDERAS (FLAGS).

De los 16bits del registro de banderas , nueve son comunes a toda la familia del
procesador 8086 y sirven para indicar el estado actual de la maquina y el
resultado del procesamiento.
Las banderas son importantes por que proporcionan informacin con respecto al
resultado de varias operaciones.

Banderas usadas:
OF(overflow,desbordamiento)
DF(direccin)
IF(interrupcin)
TF(trampa)
SF(signo)
ZF(cero)
AF(acarreo auxiliar)
PF(paridad)
CF(acarreo)

Das könnte Ihnen auch gefallen