Modos de direccionamiento de Intel Core: guía completa con ejemplos

¿Qué son los modos de direccionamiento?

Los modos de direccionamiento definen cómo la CPU calcula la dirección efectiva de un operando. Intel Core (x86-64) admite un conjunto rico, permitiendo acceso flexible a memoria para arreglos, structs, pilas y código independiente de posición.

Modos de direccionamiento clave

ModoEjemplo de sintaxisCálculo de dirección efectivaCaso de uso
RegistroMOV EAX, EBXOperando en registroRegistro a registro rápido
InmediatoMOV EAX, 42Constante en la instrucciónConstantes, máscaras
DirectoMOV EAX, [0x1234]Dirección absoluta en la instrucciónVariables globales
Indirecto por registroMOV EAX, [RBX]Dirección en registroPunteros, listas enlazadas
Base + DesplazamientoMOV EAX, [RBP+8]Registro base + desplazamiento con signoMarcos de pila, campos de struct
IndexadoMOV EAX, [RAX*4]Registro índice × escala (1,2,4,8)Elementos de arreglo
Base + ÍndiceMOV EAX, [RBX+RCX]Base + registro índiceArreglos dinámicos
Base + Índice + DesplazamientoMOV EAX, [RBX+RCX*4+16]Base + (índice × escala) + dispArreglos de struct, multidimensional
Relativo a RIP (x86-64)MOV EAX, [RIP+0x100]Puntero de instrucción + offsetCódigo independiente de posición, globales
Segmentado (Legado)MOV EAX, FS:[0]Registro de segmento + offsetAlmacenamiento local de subprocesos (FS/GS)

Factores de escala

Solo se permiten 1, 2, 4, 8 — coinciden con tamaños de datos comunes (byte, word, dword, qword).

Por qué importa

La salida del compilador, el ensamblador escrito a mano y la ingeniería inversa dependen de reconocer estos patrones. El x86-64 moderno favorece relativo a RIP y base+índice+escala para PIC y rendimiento.