Начнем с того, что полегче ;). Нетрудно заметить, что команда addr в применении к локальным переменным (в контексте invoke) , во всех случаях генерит следующий код: lea eax,[ebp-X] push eax
Предвидя грабли, на которые может натолкнуться начинающий, сразу оговорюсь, эти строки принципиально отличаются от push [ebp-X]
Вы не поверите, но почему-то многие новички здесь путаются... Как, вы тоже? ;))
Первое – заносит в стек указатель на. А второе – значение. Всем медитировать!
Обратите внимание, что Ида услужливо вынесла вверх листинга блок констант, каждая из которых имеет отрицательной значение. Но мы-то с вами ещё со школы умеем решать простенькие задачки на сложение отрицательных чисел и без труда высчитаем, что система уравнений: a = -84 b = x+a
имеет более чем тривиальное решение: b = x-84
Хе-хе... слышала бы меня сейчас моя школьная учительница математики ;)).