Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2011, 17:14   #1
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию назначение функции LEA

Что значить загрузить эффективный адрес и вычислить эффективный адрес?
TotKtoNado вне форума Ответить с цитированием
Старый 22.12.2011, 17:56   #2
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

команда lea это частный случай команды mov.
например lea eax, [ebx] тоже самое что и mov eax, ebx.

В чём фишка? Фишка в том что она позволяет выполять умножение и сложение одной командой. Например, lea ecx, [eax*eax] заменяет пару команд mov ecx, eax/shl ecx, 1

Иногда очень полезная вещь, а вообще без этой команды можно спокойно обойтись
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 22.12.2011, 18:03   #3
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от haruhi Посмотреть сообщение
команда lea это частный случай команды mov.
например lea eax, [ebx] тоже самое что и mov eax, ebx.

В чём фишка? Фишка в том что она позволяет выполять умножение и сложение одной командой. Например, lea ecx, [eax*eax] заменяет пару команд mov ecx, eax/shl ecx, 1

Иногда очень полезная вещь, а вообще без этой команды можно спокойно обойтись
а если я захочу выполнить не сложение а вычитание? И что значит загрузить эффективный адрес и вычислить?
TotKtoNado вне форума Ответить с цитированием
Старый 22.12.2011, 18:25   #4
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

lea не предназначена для сложения и вычитания. сложение и умножение это побочный эффект, не более. lea это обычная mov
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 22.12.2011, 19:01   #5
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от haruhi Посмотреть сообщение
lea не предназначена для сложения и вычитания. сложение и умножение это побочный эффект, не более. lea это обычная mov
но вы сами сказали
Цитата:
Фишка в том что она позволяет выполять умножение и сложение одной командой. Например, lea ecx, [eax*eax] заменяет пару команд mov ecx, eax/shl ecx, 1
и тогда чем отличаеться mov от lea ?
TotKtoNado вне форума Ответить с цитированием
Старый 22.12.2011, 19:32   #6
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

сказано же, lea - частный случай mov
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 22.12.2011, 19:33   #7
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от haruhi Посмотреть сообщение
сказано же, lea - частный случай mov
что значит частный?
TotKtoNado вне форума Ответить с цитированием
Старый 22.12.2011, 19:44   #8
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

Научитесь пользоваться поисковиками
читайте http://cracklab.ru/faq/Ассемблер:_команда_LEA
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 23.12.2011, 00:58   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я лично применял её для быстрого умножения на 3 и 5.
+еще некоторые быстрые вычисления.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.12.2011, 04:49   #10
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Цитата:
а если я захочу выполнить не сложение а вычитание?
TotKtoNado
Для сложения содержимого регистров (для ДОС только BX, BP, SI, DI)
lea ax,[bx+di] == ax:=bx+di
для вычитания из регистра числа (для ДОС только BX, BP, SI, DI)
lea bx,[bx-10] == bx:=bx-10
для 32-разрядных регистров ограничений нет и добавляется умножение на 2, 4, 8
lea eax,[eсx*8+eсx] == eax:= eсx*9
читай учебник и пользуйся гуглом!
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
назначение флагов DF И CF TotKtoNado Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 20.12.2011 13:14
назначение регистров TotKtoNado Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 14.12.2011 18:30
lea goluzov Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 40 05.06.2011 16:25
wrong parameters lea dx, name Farrel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 21.05.2011 23:18
LEA [FASM] m32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 03.10.2010 13:57