110 likes | 285 Views
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).
E N D
Organización de Computadores ARQUITECTURA INTELModos 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: 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. reg mod r/m
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: