Metodos de direccionamiento fisico y pila
Direccionamiento De Memoria Y Pila
En
Microprocesadores Intel 8086/8088
Reséndiz J. Gustavo
Instituto Politécnico Nacional
21/octubre/2011
Índice:
Métodos De Direccionamiento De Memoria Y Pila En Microprocesadores Intel 8086/8088
Direccionamiento De Localidades De Memoria.___________________________________________3
Segmentos YDireccionamiento.____________________________________________________________
__3
Segmento De Código______________________________________________________
____________3
Segmento De Datos_______________________________________________________
____________3
Segmento De Pila________________________________________________________
_____________4
Segmentos Y Desplazamientos(Offsets)_________________________________________________4
Direccionamiento De Programas___________________________________________________
_______5
La Pila (Stack)____________________________________________________________
__________________7
Modos De Direccionamiento____________________________________________
___________________9
Ejemplos DeDireccionamiento:_________________________________________________________11
Bibliografía________________________________________________
____________________________________13
Direccionamiento De Localidades De Memoria.
Dependiendo del modelo, el microprocesador puede accesar a uno o más bytes de memoria a la vez.
Considere el número decimal 1,025. La representación hexadecimal de esta cifra, 0401h, requiere de dos bytes (o una palabra) dememoria. Consta de un byte de orden alto ( más significativo), 04, y uno de orden bajo (menos significativo), 01. El sistema almacena en memoria estos bytes en secuencia inversa de bytes: el byte de orden bajo en la dirección baja de memoria y el byte de orden alto en la dirección alta de memoria. Por ejemplo, el procesador transferiría 0401h de un registro de localidades de memoria 5612 y 5613como:
El procesador espera que los datos numéricos en la memoria estén en secuencia inversa de bytes y los procesa de acuerdo con esto. Cuando el procesador recupera la palabra de la memoria, otra vez invierte los bytes, restableciéndolos de manera correcta en el registro como 04 01 hexadecimal. Aunque esta característica es enteramente automática, usted tiene que estar alerta cuando programe ydepure programas en lenguaje ensamblador.
Un programador en lenguaje ensamblador tiene que distinguir claramente la dirección y los contendidos de una localidad de memoria. En el ejemplo anterior, el contenido de la localidad de memoria 5612 es 01 y el contenido de la localidad 5613 es 04.
Segmentos Y Direccionamiento
Un segmento es un área especial en el programa que inicia un límite de unpárrafo, esto es, en una localidad regularmente divisible entre 16, o 10 hexadecimal. Aunque un segmento puede estar ubicado casi en cualquier lugar de memoria y , en modo real, puede ser de 64k, solo necesita tanto espacio como el programa requiera para la ejecución.
Un segmento en modo real puede ser de hasta 64k. Se puede tener cualquier número de segmentos; para direccionar un segmento enparticular basta cambiar la dirección den el registro del segmento apropiado. Los tres segmentos principales son los segmentos de código, de datos y de la pila.
Segmento De Código
El segmento de código (CS) contiene las instrucciones de máquina que son ejecutadas. Por lo común, la primera instrucción ejecutable esta en inicio del segmento, y el sistema operativo enlaza a esta localidad parainiciar la ejecución del programa. Como su nombre indica, el registro del CS direcciona el segmento de código. Si su área de código requiere más de 64k, su programa puede necesitar definir más de un segmento de código.
Segmento De Datos
El segmento de datos(DS) contiene datos, constantes y áreas de trabajo definidos por el programa. El registro DS direcciona el segmento de datos. Si su área...
Regístrate para leer el documento completo.