2016-04-18 9 views
1

При чтении Intel 64 and IA-32 Architectures Software Developer’s Manual в разделе операций для инструкции LEA (адрес эффективной нагрузки) используется расчет, называемый EffectiveAddress(SRC), который не определен нигде.Что такое эффективный адрес?

Какое определение эффективный адрес и что делает EffectiveAddress(SRC)?

ответ

3

Раздел 3.7.5 (Задание смещения) одного и тот же документ гласит:

Смещение части может быть указано непосредственно в качестве статического значения (так называемого смещением) адрес памяти или через адрес вычисление из одного или нескольких из следующих компонентов:

  • Водоизмещение - 8-, 16- или 32-битное значение.
  • База - значение в регистре общего назначения.
  • Индекс - Значение в регистре общего назначения.
  • Масштабный коэффициент - значение 2, 4 или 8, умноженное на значение индекса.

Смещение, возникающее в результате добавления этих компонентов, называется эффективным адресом . Каждый из этих компонентов может иметь либо положительное значение , либо отрицательное (2s дополнение) значение, за исключением коэффициента масштабирования .

EffectiveAddress вычисляет эффективный адрес с помощью:

Base + (Index*Scale) + Displacement 
+1

См [Режимы адресации x 86] также (http://stackoverflow.com/questions/34058101/referencing-the-contents-of -a-памяти местоположение-x86-адресации-режимы/34058400 # 34058400). Это все подмножества «base + index * scale + disp», за исключением RIP-относительной адресации в режиме 64 бит. –

Смежные вопросы