Modos de Direccionamiento


MODOS DE DIRECCIONAMIENTO


Modos de direccionamiento.


Los modos de direccionamiento son las diferentes formas de definir la ubicación de un operando en memoria, para que de esta forma el programa sea capaz de      encontrarlo durante el tiempo de ejecución. Es necesario mencionar que
img5.jpg
al realizar una operación, es posible realizarla entre registros o entre registros y memoria, pero no es posible realizarla entre memoria y memoria.
Los modos de direccionamiento son los siguientes:
Implícito:
Este modo de direccionamiento se utiliza sin declarar ninguna dirección, ya que las operaciones que lo utilizan ya conocen la dirección en la cual se encuentra el operando que se va a utilizar.
Inmediato:
En este modo de direccionamiento se declara directamente el valor del operando en la instrucción.
Ejemplo:
mov ah,02h        ->           El valor del operando (02h) se especifica directamente.
Directo:
En el direccionamiento directo, el operando hace referencia a un dato almacenado en la dirección especificada en la instrucción, la cual puede estar escrita de dos formas, como un registro o como una posición en memoria.
Para utilizar un registro basta con escribir el nombre del registro como operando para la operación, para utilizar una posición en memoria es necesario escribir el valor de la posición entre corchetes [], de esta forma TASM lo interpretara como una dirección y no como un valor.
Ejemplos:
mov ax, bx                          ->           Se establece el dato en la dirección de bx como operando.
mov ax, [021BH]               ->           Se establece el dato en la dirección 021BH como  operando.
Indirecto:
Al utilizar direccionamiento indirecto, el operando se utiliza como una referencia a un dato que se encuentra almacenado en una posición de memoria, para esto el operando debe especificar un registro entre corchetes, el cual contiene la dirección de memoria a la que se desea acceder.
Ejemplo:
mov  bx,[ax]       ->           ax contiene la dirección a la que se desea acceder y este valor se                                                              asigna a bx.
Indexado:
En el direccionamiento indexado el operando hace referencia a una posición en memoria, la cual puede ser expresada utilizando un numero el cual es sumado a un registro que funciona como un índice respecto a la dirección de memoria.
mov ax, [1324h+12]        ->           En este caso 1324h es la dirección base y 12 es el registro                                                                              utilizado como índice.
Relativo:
En el direccionamiento relativo se declara el operando como el valor de un registro entre corchetes, al cual se le aplica un desplazamiento, es decir, se le suma un valor que indicara el desplazamiento a partir de la dirección indicada por el registro.
Ejemplo:
Mov ax,[bx+2]                  ->           En este ejemplo bx contiene la dirección base y 2 es el                                                                                   desplazamiento que se utilizará.
Ejemplo:
Estos son los únicos registros que pueden usarse de modo dual (en 8 o 16 bits) Los registros de la CPU son conocidos por sus nombres propios, que son:

  • • AX (acumulador)
  • • BX (registro base)
  • • CX (registro contador)
  • • DX (registro de datos)
  • • DS (registro del segmento de datos)
  • • ES (registro del segmento extra)
  • • SS (registro del segmento de pila)
  • • CS (registro del segmento de código)
  • • BP (registro de apuntadores base)
  • • SI (registro índice fuente)
  • • DI (registro índice destino)
  • • SP (registro del apuntador de pila)
  • • IP (registro del apuntador de siguiente instrucción)
  • • F (registro de banderas)

El registro AX se usa para almacenar resultados, lectura o escritura desde o hacia los puertos. El BX sirve como apuntador base o índice. El CX se utiliza en operaciones de iteración, como un contador que automáticamente se incrementa o decrementa de acuerdo con el tipo de instrucción usada. El DX se usa como puente para el acceso de datos.

Comentarios

Entradas más populares de este blog

2.9 Instrucciones Aritméticas

2.8 Captura de cadenas con formato

2.10 Manipulación de la Pila