Organización de Computadores
ARQUITECTURA INTEL
Modos de direccionamiento
MODOS DE DIRECCIONAMIENTO
Hay 7 modos básicos:
•
Modo registro: el operando es un registro.
•
Modo inmediato: el operando es una constante.
•
Modo directo: el operando es una directiva efectiva
(explícita).
•
Modo registro indirecto: similar al anterior pero la
dirección efectiva está contenida en un registro
(BX,BP,SI,DI)
•
Modo relativo a base: la dirección efectiva se encuentra
sumando un desplazamiento a BX o BP.
MODOS DE DIRECCIONAMIENTO
•
Modo relativo a base: la dirección efectiva se encuentra
sumando un desplazamiento a BX o BP.
•
Modo indexado directo: igual al anterior usando SI o DI.
•
Modo indexado a base: combinación de los dos
anteriores. La dirección efectiva se calcula como la suma
de un registro base, un registro índice y, opcionalmente,
un desplazamiento.
MODOS DE DIRECCIONAMIENTO
Ejemplo de uso:
•
Modo registro: add ax, bx
•
Modo inmediato: add ax,5
•
Modo directo: add ax,[100]
•
Modo registro indirecto: add ax, [bx]
•
Modo relativo a base: add ax, [bp+100]
•
Modo indexado directo: operaciones de cadena: movsb
•
Modo indexado a base: add ax, [bx +s i + 100]
MODOS DE DIRECCIONAMIENTO
Los modos de direccionamiento del 8086 (Crawford &
Gelsinger, 1987) son muy irregulares.
Recordando la codificación de los operandos de esta
máquina:
mod
reg
r/m
Vemos que hay un campo para un registro (reg), que
especifica uno de los operandos, y otros dos campos (mod y
r/m) para el otro.
MODOS DE DIRECCIONAMIENTO
Combinaciones posibles de los valores de estos campos del
i-8086:
MODOS DE DIRECCIONAMIENTO
Los modos de direccionamiento de esta máquina no son en
absoluto ortogonales, se quiere decir con esto que no se pueden
aplicar todos los modos sobre todos los registros.
No existe el modo inmediato sino códigos de operación
específicos para permitir el direccionamiento inmediato.
Los modos autoindexados no están soportados por esta
máquina.
MODOS DE DIRECCIONAMIENTO
Como se desprende de la tabla, la mayoría de los modos son
indirectos por registro, indexados o directos por registro; en
este caso (mod=11), existen dos posibilidades en función del
tamaño del operando.
MODOS DE DIRECCIONAMIENTO
EN EL 80386
En modo real es completamente compatible con el 8086,
pero cuando trabaja en modo protegido, es decir, con
segmentos de 32 bits, es mucho más regular en la
codificación de los direccionamientos.
Existe un modo nuevo que requiere un byte adicional
denominado SIB (escala, índice, base) que se añade al byte
de operandos y cuyo formato es:
S
I
B
MODOS DE DIRECCIONAMIENTO
EN EL 80386
Ese byte adicional especifica un factor de escala y dos
registros (base e índice).
Para calcular la dirección con este modo se multiplica el
contenido del registro índice por el factor de escala (que
puede ser 1, 2, 4 u 8), se le suma el registro base y en
algunas ocasiones un desplazamiento de 8 o 32 bits.
El modo SIB es útil para direccionar elementos de vectores
de longitudes diferentes en bucles. Es una alternativa a los
modos autoindexados que esta máquina no soporta.
MODOS DE DIRECCIONAMIENTO
EN EL 80386
Combinaciones posibles de los valores de estos campos del
i-80386:
Descargar

Arquitectura Intel