Modos de Direccionamiento en Ensamblador 8086: Referencia Completa (7 Modos)
El Intel 8086 soporta 7 modos de direccionamiento principales para acceder a operandos en memoria o registros. Cada uno determina cómo se calcula la dirección efectiva (EA).
Los 7 Modos de Direccionamiento
1. Direccionamiento por Registro
- Operando en registro. Sin acceso a memoria.
- Ejemplos:
MOV AX, BX,ADD CL, DH,INC SI. - El más rápido (sin cálculo de EA, sin ciclo de bus).
2. Direccionamiento Inmediato
- Operando codificado en la instrucción. Dato constante.
- Ejemplos:
MOV AX, 1234H,ADD BL, 42,CMP CX, 0FFFFH. - Inmediato de 8 o 16 bits; se extiende con signo de 8 bits a 16 bits para operaciones.
3. Direccionamiento Directo (Absoluto)
- Dirección efectiva = desplazamiento de 16 bits en la instrucción. Sin registros.
- Ejemplo:
MOV AX, [1234H]→ carga la palabra en el offset 1234H en el DS actual. - Codificación: opcode + modrm (mod=00, r/m=110) + disp16.
4. Direccionamiento Indirecto por Registro
- Dirección efectiva en registro base/índice: BX, SI, DI o BP.
- Ejemplos:
MOV AX, [BX],MOV [SI], CL,ADD [DI], 5. BPusa por defecto el segmento SS; los demás usan DS.
5. Direccionamiento Basado (Base + Desplazamiento)
- EA = BX o BP + desplazamiento de 8/16 bits.
- Ejemplos:
MOV AX, [BX+10H],MOV [BP-2], DX. - Usado para: campos de estructura, marcos de pila (BP), base de arreglo + offset.
6. Direccionamiento Indexado (Índice + Desplazamiento)
- EA = SI o DI + desplazamiento de 8/16 bits.
- Ejemplos:
MOV AL, [SI+20H],MOV [DI-4], BX. - Usado para: acceso a elementos de arreglo (índice en SI/DI, base en desplazamiento).
7. Direccionamiento Basado Indexado (Base + Índice + Desplazamiento)
- EA = BX/BP + SI/DI + desplazamiento de 8/16 bits. Cuatro combinaciones:
[BX+SI],[BX+DI],[BP+SI],[BP+DI](+ desplazamiento opcional).- Ejemplos:
MOV AX, [BX+SI+100H],ADD [BP+DI-6], CL. - Usado para: arreglos 2D (fila en BX, columna en SI), marcos de pila con arreglos locales.
Registros de Segmento Predeterminados
| Registro Base | Segmento Predeterminado | Prefijo de Anulación |
|---|---|---|
| BX, SI, DI | DS | CS:, ES:, SS:, FS:, GS: (386+) |
| BP | SS | DS:, ES:, CS: (raro) |
Cálculo de Dirección Efectiva (Modo Real)
Dirección Física = (Segmento × 16) + Dirección Efectiva
Segmento = DS (predeterminado) o anulado. EA de los modos 3–7 anteriores.
Notas de Codificación (Byte ModR/M)
- mod (2 bits): 00=mem sin desplazamiento, 01=mem disp8, 10=mem disp16, 11=registro.
- reg (3 bits): operando de registro.
- r/m (3 bits): modo de direccionamiento de memoria / registro.
- Los modos 4–7 usan mod ≠ 11 con códigos r/m específicos (por ejemplo, r/m=000 → [BX+SI]).
Bonus: 80386+ Añade
- Indexado Escalado:
[base + index*scale + disp], scale = 1,2,4,8. - Registros de 32 bits: EAX, ESI, EBP, ESP (con byte SIB).
- Segmentos FS/GS.
- Relativo a RIP (x86-64):
[RIP + disp32]— código independiente de posición.
Conclusión: Los 7 modos del 8086 cubren acceso a escalares, arreglos, estructuras y pila. Domina [BX+SI+disp] y [BP+disp] — son los caballos de batalla para estructuras de datos y marcos de pila.
- ·¿Qué es un compresor de audio? Parámetros, tipos y cómo usarlo
- ·Función del Amplificador RF: Potenciando la Señal Invisible
- ·Amplificadores de audio DIY: Op-Amp y Clase A
- ·Cómo reemplazar el fusible de un amplificador: Guía segura
- ·Cómo desconectar un preamplificador o receptor del amplificador
- ·Potencia, ohmios y qué considerar al comprar un amplificador
- ·Ejemplos de producción intermitente
- ·¿Cuántos Amperios Consume una Computadora? Estimaciones de Escritorio y Laptop
