Я початківець у мові складання і помітив, що код x86, що випромінюється компіляторами, зазвичай утримує покажчик кадру навколо навіть у режимі випуску / оптимізації, коли він може використовувати EBP
реєстр для чогось іншого.
Я розумію, чому покажчик кадру може полегшити налагодження коду, і це може знадобитися, якщо alloca()
викликається у межах функції. Однак у x86 є дуже мало регістрів, і використовувати два з них для утримання місця розташування кадру стека, коли одного буде достатньо, для мене немає сенсу. Чому упущення покажчика кадру вважається поганою ідеєю навіть у оптимізованих / випущених версіях?
alloca
) 3. простота виконання програми: обробка винятків, пісочниця, GC