Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > В чём отличие lea bx, mass и mov bx, offset mass


Автор: Innuendo108 23.10.2010, 00:13
Собственно сабж.

Допустим в данных я объявляю массив mass db 1,2,4,5

А в коде я загружаю его адрес (первого элемента) в bx:
lea bx, mass.

(это нас так учат в методичке).

А часто в другой литературе встречаю mov bx, offset mass, и предполагаю, что это тоже самое. Или я всё-таки ошибаюсь и отличие есть?

Автор: 586 23.10.2010, 04:15
Результат один и тот же. Команда mov хороша тем, что на один байт короче:
Код
8D1E2222      LEA     BX,[2222]  ; длина: 4 байта
BB4444        MOV     BX,4444    ; длина: 3 байта

Автор: iff 24.10.2010, 19:43
lea может использоваться для быстрого выполнения арифметических действий.

Автор: airyashov 25.10.2010, 09:16
разница в том что одна расчитывается на этапе компиляции, а др в процессе выполнения

Автор: iff 25.10.2010, 14:18
Вроде как в инструкции lea уже присутствует вычисленное компилятором смещение:
8D1E2222      LEA     BX,[2222]

Автор: Innuendo108 26.10.2010, 03:06
ясно, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)