По какому принципу VS выбирает способ адресации (ESP, EBP), просматривая программы, видно отдельное использование того и другого. Зависимость пока не могу понять
sysexit Так называемые ESP-based frames - один из вариантов оптимизации кода компилятором, задается соответствующими параметрами. Все переменные, включая параметры вызова ф-ции адресуются относительно ESP, EBP освобождается под любые другие цели.
Использование EBP по сравнению с ESP при прочих равных условиях сокращает размер кода. В зависимости от настроек оптимизации выбор в ту или иную сторону делается по разным причинам: 1. Оптимизация по размеру. ESP будет использоваться, если выделение локальной переменной и взаимодействие с ней вместо освобождения регистра EBP приведёт к увеличению размера кода. При использовании локальных переменных вместо регистров код растёт потому, что команды работы с памятью, как правило, "длиннее" команд работы с регистрами. 2. Оптимизация по скорости. ESP будет использоваться в двух случаях: 2.1. Если не хватает регистров, т.е. в любой более-менее сложной функции. 2.2. Если функция очень маленькая и использование EBP приведёт к увеличению размера кода, что связано с необходимостью настройки стекового фрейма при использовании EBP.