Я новичок в реверс-инжиниринге и иногда путаюсь, когда натыкаюсь на LEA
инструкцию. Я хочу узнать, как узнать, является ли инструкция lea массивом или указателем ссылки. Многие люди говорят, что инструкция LEA
используется как справочная инструкция.
Например: lea ecx, [eax]
--означает что-то вроде "int a=&b" в c++;
А некоторые люди говорят, что он используется для загрузки содержимого одного регистра в другой регистр.
Например: lea ecx, [eax]
--означает, что содержимое [eax] загружается в ecx;
но я выбираю первый вариант. Но что меня смущает, так это то, что я вижу что-то подобное в olly:
lea ecx, dword ptr ss:[ecx+eax*2]
or
lea ecx, dword ptr ds:[ecx+eax*2]
и так далее.
Пожалуйста, мне нужно четкое объяснение значения этих инструкций, чтобы знать, когда это означает ссылочный указатель или массив в C++, или даже как узнать оба (массив и ссылочный указатель) в olly или IDA. Я ценю заранее. Спасибо.