Одно смещение (без индекса и базы) указывает относительный адрес операнда. Такая форма адресации используется для доступа к статическим скалярным операндам. Смещение может иметь размер байта, слова или двойного слова.
База
Относительный адрес операнда указывается косвенно, в одном из регистров общего назначения, как для "смещенных" переменных.
База + Смещение
Регистр и смещение могут быть использованы вместе с двух случаях:
Индекс в статических массивах, элементы которых имеют размер, отличный от 2, 4 и 8 бит. Смещение в этом случае кодирует относительный адрес начала массива. Регистр содержит результаты вычислений, которые определяют смещение конкретного элемента внутри массива.
Доступ к полю записи. В этом случае регистр базы содержит адрес начала записи, а смещение представляет собой относительный адрес нужного поля. Важным частным случаем использования такой комбинации (база + смещение) является доступ к параметрам в записи активации процедуры. Запись активации процедуры - это кадр стека, созданный при входе в процедуру. В данном случае, в качестве базового регистра удобнее всего использовать EBP, т.к. при его использовании автоматически выбирается сегмент стека. Такой способ доступа к параметрам процедуры обеспечивает компактное кодирование команды.
( Индекс * Коэффициент масштабирования ) + Смещение
Эта комбинация обеспечивает наиболее эффективное индексирование в статических массивах, элементы которых имеют размер 2, 4 или 8 бит. Смещение указывает адрес начала массива, а индексный регистр содержит порядковый номер нужного элемента. При этом процессор автоматически преобразует номер элемента в его смещение относительно начала массива, используя коэффициент масштабирования.
База + Индекс + Смещение
Совместное использование двух регистров применяется для поддержки работы с двумерными массивами (смещение содержит адрес начала массива) или для доступа к отдельным экземплярам массива записей (смещение содержит относительный адрес поля внутри записи).
База + ( Индекс * Коэффициент масштабирования ) + Смещение
Такая комбинация обеспечивает эффективное индексирование в двумерном массиве, если его элементы имеют размер 2, 4 или 8 битов.