Está en la página 1de 8

Direccionamiento

Organizacin del Computador Assembler8x8x Docente Laura Almada

Son los distintos modos de acceder a los datos en memoria por parte del procesador. La sintaxis general de las instrucciones suele ser la siguiente: instruccin DESTINO, FUENTE Que indica que el contenido de fuente se queda en destino.

Direccionamiento inmediato. Se hace referencia a un valor constante que se codifica detrs del cdigo de la instruccin .Dicho parmetro representa a un valor,no a un registro ,ni a una direccin.
dato EQU 0FFFh MOV AX, dato MOV AX,500 ; Declaramos un smbolo constante

Organizacin del Computador Assembler8x8x Docente Laura Almada

Direccionamiento de registro. Los operandos estn contenidos en los registros indicados en la instruccin, necesariamente deben ser de igual tamao.
MOV AX,BX MOV AX, [57D1h] MOV AX, ES:[429Ch]

Direccionamiento directo o absoluto. Se utiliza cuando se referencia a una direccin de memoria y la misma est codificada junto con la instruccin.
MOV CX, LIST MOV AX, ES:[429Ch]

Direccionamiento indirecto. El operando se encuentra en una direccin sealada por un registro de segmento*16 ms un registro base (BX/BP) o ndice (SI/DI) (Nota: BP acta por defecto con SS).
MOV AX, [BP] MOV ES:[DI], AX ; AX = [SS*16+BP] ; [ES*16+DI] = AX

Organizacin del Computador Assembler8x8x Docente Laura Almada

Indirecto con ndice o indexado. El operando se encuentra en una direccin determinada por la suma de un registro de segmento*16, un registro de ndice Si o DI y un desplazamiento de 8 16 bits.
MOV AX, [DI+desp] ; AX = desp[DI] MOV [SI+desp], BX ; desp[SI] = BX

Indirecto con base e ndice o indexado a base. El operando se encuentra en una direccin especificada por la suma de un registro de segmento*16, uno de base, uno de ndice y opcionalmente un desplazamiento de 8 16 bits.
MOV AX, ES:[BX+DI+desp] ; AX = ES:desp[BX][DI] MOV CS:[BX+SI+desp], CX ; CS:desp[BX][SI] = CX
Organizacin del Computador Assembler8x8x Docente Laura Almada

El microprocesador tiene un grupo de reglas que se aplican siempre que se direcciona Memoria. Estas reglas definen la combinacin de seg. de cdigo de desplazamiento que utilizamos en ciertos tipos de direccionamiento. El CS se emplea siempre con el IP ,para direccionar la prox instruccin a ejecutar en un programa. El CS define el ppio de un seg de cdigo y el IP apunta a la siguiente instruccin ,se desplaza, dentro del segmento de cdigo a ejecutar por el micro. Otro direccionamiento implcito es el de la Pila.Se referencia al seg de pila por medio del Segmento de Pila SS y por localidad de memoria a la cual direcciona el puntero de Pila SP o el puntero Base BP
SEGMENTO
CS

DESPLAZAMIENTO
IP

SS
DS ES

SP o BP
BX,DI,SI o un nmero de 16 bits DI para instrucciones de cadena
Organizacin del Computador Segmentos y desplazamiento implcitos del 8086-80286 Assembler8x8x Docente Laura Almada

La pila o stack
Es un bloque de memoria de estructura LIFO ("Last Input First Output": ltimo en entrar, primero en salir). La pila se direcciona mediante desplazamientos desde el registro SS (stack segment). Las posiciones individuales dentro de la pila se calculan sumando al contenido del segmento de Pila SS un desplazamiento contenido en el registro puntero de pila SP. Todos los datos que se almacenan en la pila son de longitud palabra, y cada vez que se introduce algo en ella por medio de las instrucciones de manejo de pila (PUSH y POP), el puntero se decrementa en dos; es decir, la pila avanza hacia direcciones decrecientes. El registro BP suele utilizarse normalmente para apuntar a una cierta posicin de la pila y acceder indexadamente a sus elementos, generalmente en el caso de variables, sin necesidad de desapilarlos para consultarlos.
Organizacin del Computador Assembler8x8x Docente Laura Almada

La pila es utilizada para preservar el valor de un registro o de una variable de 16 bits (1 palabra) metindola en la pila con la orden PUSH que salvamos para recuperarla posteriormente con la orden POP . Las rdenes POP deben hacerse justo en orden inverso a las PUSH puesto que la pila tiene estructura LIFO. Su empleo es la nica forma de definir variables locales. Tambin es utilizada internamente para cargar el IP cuando llamamos a una subrutina y luego se recoge ste. Tambin se puede emplear para pasar parmetros a los procedimientos. Puesto que la pila va a ser muy utilizada, tanto por el programador como por operaciones internas, es muy necesario ir desapilando todo lo apilado para evitar una prdida de control sobre el micro por desbordamiento de sta.
Organizacin del Computador Assembler8x8x Docente Laura Almada

Ejemplo simple de funcionamiento de la Pila

Organizacin del Computador Assembler8x8x Docente Laura Almada

También podría gustarte