я разобрал этот код
int main{
vector<string> temp;
}
Результат такой
LEA ECX, %16I64X DWORD PTR[EBP + temp]
CALL std::vector<std::basic_string<char, std::char_traits<char>, std::
Мои вопросы:
Что здесь делает %16I64X.
что означает строка "std::vector, std::". Я знаю, что инструкция CALL вызвала это, но та, которая была вызвана, не имеет смысла. Это перенаправление ввода/вывода?
Меня просто смущает логика дизассемблирования, потому что он загружает эффективный адрес, а затем вызывает его. Я ожидаю что-то вроде перемещения сначала чего-то по определенному адресу, затем загружает его эффективный адрес, а затем вызывает его.
* Я здесь только новичок. Спасибо за терпеливость.
%16I64X
выглядит так, как будто говорит ассемблеру использовать краткую команду from (с 8-битным смещением) инструкцииlea
. - person Gunther Piez   schedule 28.03.2012