Команда загрузки действительного адреса LEA очень похожа на команду  MOV. Но вместо пересылки данных из ячейки памяти в регистр команда  LEA загружает в регистр адрес данных.  Так как набор команд  микропроцессора 8088 разрешает иметь в команде только один адрес  памяти, в качестве приемника результата всегда указывается регистр.  Команда LEA может ссылаться на операнд источника с помощью любого  типа адресации, который можно указать байтом mod=r/m.

Во многих случаях команда LEA идентична команде MOV с  непосредственным операндом. Команды

  MOV BX,  OFFSET    EXWORD

  LEA BX, EXWORD

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

Но если бы программа загружала в регистр BX адрес десятого  байта массива, на который указывает регистр DI, команда LEA  выглядела бы следующим образом

  LEA BX, 10[DI]

Микропроцессор выполнил бы вычисление адреса, используя  информацию из байта mod=r/m в точности, как в случае команды MOV.  Затем он поместил бы вычисленное смещение, а не данные, по этому адресу в регистр BX. Аналогичной команде с непосредственным  операндом MOV, которая могла бы выполнять ту же функцию, нет. У  ассемблера здесь нет способа определения непосредственного  значения, так как адрес неизвестен во время ассемблирования.