A z adatok címzésében több dolgoz használhatunk egyszerre. A teljes címzési forma:
[bázis + skála*index + eltolás]
Ami több alakban is felírható. A fentivel ekvivalens:
eltolás[bázis][skála*index]
Például:
MOV EBX, 20
MOV ESI, 3
MOV EAX, 8736[EBX][4*ESI]
Ez a forma nagyon jól használható többek között 2-dimenziós tömbök indexelésére. Ha feltesszük, hogy a fenti adatszegmensben a tömb a 8736. -ik byte-on kezdődik az adatszegmensben, akkor az fenti példával ugyanaz, mint az alábbi kódrészlet, és a tömb 2. sorának, 3. indexű (negyedik) elemét adja vissza.
MOV EBX, 20
MOV ESI, 3
MOV EAX, TOMB[EBX][4*ESI]
Magyarázat:
- TOMB: A fordító helyettesíti majd 8736-al. A processzor a program futása közben csak az adat kezdőcímét tudja kezelni.
- EBX: A tömb kezdetéhez képest a 2. sor eltolása. Az első sor 5 db 4 byte-os elemet tartalmaz. Vagyis + 20 byte eltolása van a tömb kezdetéhez képest.
- 4*ESI: ESI tárolja a soron belül a kívánt indexet, 3-at. De ha ezt az elem memóriabeli eltolására vagyunk kíváncsiak, akkor ezt meg kell szorozni az elemek méretével (4 byte-os elemeknél) 4-el.