Sou um iniciante em linguagem assembly e percebi que o código x86 emitido por compiladores geralmente mantém o ponteiro do frame por perto, mesmo no modo de liberação / otimizado, quando poderia usar o EBP
registro para outra coisa.
Eu entendo por que o ponteiro do frame pode tornar o código mais fácil de depurar e pode ser necessário se alloca()
for chamado dentro de uma função. No entanto, o x86 tem poucos registradores e usar dois deles para manter a localização do quadro de pilha quando um seria suficiente simplesmente não faz sentido para mim. Por que omitir o ponteiro do frame é considerado uma má ideia, mesmo em compilações otimizadas / liberadas?
alloca
) 3. facilidade de implementação de tempo de execução: exceto manipulação, sandbox, GC