Поскольку вычисление для  операнда  адреса, состоящего из  базы и  индекса, встречается довольно часто,  среди способов адресации 8088  есть такие, что  позволяют автоматически  производить индексирующее  сложение. Вместо  выполнения всех вычислений,  программа может  определить только величину 2*I и поместить ее в регистр BX. Команда

  INC [OPND + BX]

вычисляет исполнительный адрес через сложение адреса базы  OPND  со  значением индекса в BX. Этой командой достигается тот же самый результат что и в предыдущем случае, но меньшим числом команд.  Обратите внимание, что в этой команде ассемблеру не требуется подсказка  WORD PTR,  потому что ассемблер уже знает, что OPND является переменной типа WORD. Оператор PTR требуется только в тех случаях, когда ассемблер не может определить тип операнда.

Любой из четырех адресных регистров  может быть использован  в  качестве индекса  при базе. Фиг.  3.2 показывает возможные  способы  адресации через  базу и индекс. Вы  видите, что ассемблер допускает  несколько способов  записи операции адресации. В группе, состоящей  из  пяти команд  на Фиг.  3.2, во  всех командах  адрес базы OPND  складывается с указанным рядом индексным регистром.

Надо отметить,  что  в команде,  содержащей  базисный адрес,  регистр не обязательно  должен содержать  именно значение индекса.  Действительно, поскольку BX  называется базисным регистром, кажется  разумным воспользоваться противоположной  конфигурацией. В качестве  примера предположим,  что  программа использует  множество разных  векторов с одинаковой длиной  и размером элементов. Такую структуру  может иметь, например,  классный журнал, в  котором векторам  соответствуют наборы оценок за каждую  контрольную  работу.

Программа, вычисляющая оценку пятого ученика в классе по I-й работе  будет иметь  уже  известное значение  индекса  (5) а базу (вектор  данной контрольной работы)  - вычисляемую в  ходе выполнения  программы.

Индексный регистр может содержать как адрес базы вектора, так и  значение индекса  в  векторе. Поскольку  константное  значение в  команде может  оказаться и базой  и индексом (или  вовсе чем-нибудь  известным только программисту), то это значение называют смещением.  Оно соответствует  расстоянию или смещению  от адреса в регистре до  исполнительного адреса, по которому происходит обращение.