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.
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.
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.