Anda di halaman 1dari 4

MODOS DE DIRECCIONAMIENTO.

Nota: EBX=00000300H, ESI=00000200H, ARRAY=1000H y DS=1000H

DIRECCIONAMIENTO DE REGISTRO
Transfiere una copia de un byte o palabra desde el registro o localidad de memoria fuente hacia el registro o localidad de memoria destino. MOV CX, DX copia la palabra contenida en el registro DX al registro CX.

A partir del 386, es posible transferir una palabra doble del registro o localidad de memoria fuente al registro o localidad de destino. MOV ECX, EDX copia la palabra doble contenida en el registro EDX al registro ECX.

Este es el tipo ms comn de direccionamiento de datos y, una vez se aprenden los nombres de los registros, es el ms fcil de aplicar. El microprocesador contiene los siguientes registros de 8 bits usados con este direccionamiento: EH, AL, BH, BL, CH, CL, DH y DL. Tambin se encuentran los registros de 16 bits: AX, BX, CX, DX, SP, BP, SI y DI. Los registros extendidos de 32 bits son: EAX, EBX, ECX, EDX, ESP, EBP, EDI y ESI. Algunas instrucciones MOV (as como PUSH y POP) tambin utilizan los registros de segmento de 16 bits CS, ES, DS, SS, FS y GS. Es importante utilizar registros del mismo tamao en las instrucciones, nunca mezcle registros de diferentes tamaos, ya que esto no est permitido por el microprocesador y da como resultado un error al ensamblar. Se debe tener en cuenta que ninguna de las instrucciones MOV afecta los bits de bandera. La instruccin MOV desde un registro de segmento a otro registro de segmento es prcticamente el nico tipo de instruccin MOV de registro no permitido. El contenido del registro o localidad de memoria de destino cambia en odas las instrucciones, excepto en CMP y TEST.

DIRECCIONAMIENTO INMEDIATO
Transfiere el byte o palabra inmediata al registro o localidad de memoria de destino MOV AL, 22H copia el byte 22H al registro AL

A partir del 386, es posible transferir una palabra doble inmediata a un registro o localidad de memoria. MOV EBX, 12345678H copia la palabra doble 12345678H al registro EBX

El trmino inmediato significa que los datos siguen inmediatamente al cdigo de operacin hexadecimal n la memoria. Tambin observe que los datos inmediatos son constantes, mientras que los datos transferidos de un registro son variables. Este direccionamiento opera sobre un byte o palabra o palabra doble. La instruccin MOV inmediata transfiere una copia del dato inmediato a un registro o localidad de memoria. El ensamblador simblico describe los datos inmediatos de muchas maneras. La letra H se agrega a los datos hexadecimales. Si un dato hexadecimal inicia con una letra, el ensamblador requiere que el dato vaya precedido de un 0. Por ejemplo, para representar F2, se utiliza 0F2H en lenguaje ensamblador. Si el dato en ASCII est encerrado entre

apstrofos, es posible representar un carcter en cdigo ASCII en la forma inmediata (MOV BH, `A) la cual mueve una A en cdigo ASCII (41H) al registro BH. Los datos binarios son representados cuando el nmero binario es seguido por una letra B, o por la letra Y en otros ensambladores.

DIRECCIONAMIENTO DIRECTO
Mueve un byte o palabra entre una localidad de memoria y un registro. El conjunto de instrucciones no soporta una transferencia de memoria a memoria, excepto para la instruccin MOVS. MOV CX, LIST registro CX. copia el contenido de la palabra de la localidad de memoria LIST al

MOV [12234], AX copia el contenido del registro AX a la localidad de memoria DS X 10H + 1234H = 10000H + 1234H = 11234H A partir del 386, es posible direccionar una localidad de memoria con un tamao de palabra doble. MOV ESI, LIST copia un nmero de 32 bits almacenado en 4 bytes de memoria consecutivos, de la localidad LIST en el registro ESI. La mayora de las instrucciones puede utilizar el modo de direccionamiento directo de datos. De hecho, este direccionamiento se aplica a muchas instrucciones de un programa tpico. Existen 2 formas bsicas: 1. Direccionamiento directo: se aplica a una instruccin MOV entre una localidad de memoria y AL, AX, o EAX 2. Direccionamiento con desplazamiento: se aplica a casi cualquier instruccin del conjunto de instrucciones. En cualquiera de los casos, la direccin est formada por la suma del desplazamiento ms la direccin dada por defecto en el segmento de datos, o una direccin de segmento altera. El direccionamiento directo con una instruccin MOV transfiere un dato entre una localidad de memoria ubicada dentro del segmento de datos y el registro AL (8 bits), AX (16 bits) o EAX (32 bits). El direccionamiento con desplazamiento es casi idntico al direccionamiento directo, excepto que la instruccin tiene una longitud de 4 bytes, en lugar de 3.

DIRECCIONAMIENTO INDIRECTO POR REGISTRO


Transfiere el byte o palabra entre un registro o localidad de memoria direccionada por un ndice o un registro base. El ndice y el registro base son BP, BX, DI y SI MOV AX, [BX] copia los datos con tamao de una palabra de la direccin dada por el segmento de datos, ms el desplazamiento indexado por BX, hacia el registro AX. MOV [BX], CL copia el contenido dentro del registro CL a la localidad de memoria apuntada por DS X 10H + BX = 10000H+0300H = 10300H

A partir del 386, se transfiere un byte, una palabra o una palabra doble entre un registro y una localidad de memoria direccionada por cualquier registro: EAX, EBX, ECX, EDX, EBP, EDI y ESI. MOV AL, [ECX] carga el contenido de la direccin de desplazamiento elegida por el contenido de ECX al registro AL. Este direccionamiento permite direccionar cualquier localidad de memoria por medio de una direccin de desplazamiento contenida en cualquiera de los siguientes registros: BP, BX, DI y SI. Adems de estos registros, para direccionar memoria de forma indirecta, los microprocesadores 80386 o superiores, permiten el direccionamiento indirecto con cualquier registro extendido exceptuando a ESP.

DIRECCIONAMIENTO BASE MS NDICE


Transfiere un byte o palabra entre un registro y una localidad de memoria direccionada por un registro base (BP o BX), ms un registro ndice (DI o SI). MOV [BX+DI], CL copia el byte contenido en el registro CL a una localidad de memoria del segmento de datos direccionada por BX ms DI. MOV [BX+SI], BP copia el byte contenido en el registro BP a una localidad de memoria dada por DS X 10H + BX + SI = 10000H+0300H+0200H = 10500H A partir del 386, es posible combinar cualquier registro EAX, EBX, ECX, EDX, EBP, EDY o ESI para generar la direccin de memoria. MOV [EAX+EBX], CL copia el byte contenido en el registro CL a la localidad de memoria del segmento de datos direccionada por EAX ms EBX.

DIRECCIONAMIENTO RELATIVO A REGISTRO


Mueve un byte o palabra entre un registro y una localidad de memoria direccionada por un registro base o ndice, ms un desplazamiento. MOV AX, [BX+4] ms 4. carga a AX desde la direccin del segmento de datos formada por BX

MOV AX, ARRAY [BX] carga AX desde la localidad de memoria del segmento de datos ARRAY ms el contenido d BX. A partir del 386, se utiliza cualquier registro para direccionar memoria MOV AX, [ECX+4] ms 4. carga a AX desde la direccin del segmento de datos formada por ECX

MOV AX, ARRAY[EBX] carga AX desde la localidad de memoria del segmento de datos de ARRAY ms el contenido de EBX.

DIRECCIONAMIENTO RELATIVO A BASE MS NDICE


Transfiere un byte o palabra entre un registro y la localidad de memoria direccionada por una base y un registro ndice, ms un desplazamiento. MOV AX, ARRAY[BX+DI] carga a AX desde una localidad de memoria en el segmento de datos, la direccin se forma por la suma de ARRAY, BX y DI MOV AX, [BX+DI+4] carga a AX desde una localidad de memoria en el segmento de datos, la direccin se forma por la suma de BX, DI y 4. MOV EAX, ARRAY[EBX+ECX] carga EAX desde una localidad de memoria del segmento de datos, a la cual se accede con la suma de ARRAY, EBX y ECX.

DIRECCIONAMIENTO NDICE ESCALONADO


Est disponible slo a partir del 386. El segundo de un par de registros es modificado por un factor de escala de 2X, 4X u 8X para generar la direccin de memoria del operando MOV EDX, [EAX+4*EBX] carga a EDX desde una localidad de memoria del segmento de datos direccionada por EAX ms 4 veces EBX. El escalamiento permite acceder a arreglos de datos de memoria de una palabra (2X), una palabra doble (4X) o una palabra cudruple (8X). Tambin existe el factor de escalamiento 1X, pero generalmente est implcito y no aparece en la instruccin. MOV AL, [EBX+ECX] este es un ejemplo de escalonamiento de 1.

Anda mungkin juga menyukai