Команды передачи адресов

Опубликовано в Архитектура процессора Intel

LEA dst. src (Load Effective Address) — загрузка эффективного адреса. Команда LEA формирует эффективный адрес (ЕА) на основе постбайта адресации и загружает его в регистр с адресом, заданным полем reg постбайта.

Эта команда используется для адресации как одиночных элементов, так и структур данных, размещаемых в памяти.

В качестве операнда-приемника (dst) может использоваться только 16-разрядпый регистр (по разрядности НА), а в качестве операнда-источника (sre) -имя переменной или структуры данных, размещаемых в памяти.

Пример:

LEA ВХ, ARRAY

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

LDS dsl. sre (Load full pointer using DS) — захрузка полного указателя с использованием регистра DS.

LES dst. sre (Load full pointer using ES) — загрузка полного указателя с использованием регистра ES.

Команды LDS и LES загружают полный указатель данных (seg:offset), состоящий из сегментного адреса и смещения, из памяти в пару регистров, одним из которых яв.ыется сегментный регистр, именуемый мнемоникой команды.

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

В командах LDS и LES используются аналогичные команде LEA ограничения на операнд-приемник (только 16-разрядный регистр) и операнд-источник (только память).

Как правило, эти команды используются для инициализации цепочек (строк), в связи с чем в команде LDS в качестве адресуемого регистра обычно используется SI, а в команде LES — DI.