Je suis un débutant en langage d'assemblage et j'ai remarqué que le code x86 émis par les compilateurs garde généralement le pointeur de cadre, même en mode version / optimisé, lorsqu'il pourrait utiliser le EBP
registre pour autre chose.
Je comprends pourquoi le pointeur de trame peut faciliter le débogage du code et peut être nécessaire s'il alloca()
est appelé dans une fonction. Cependant, x86 a très peu de registres et l'utilisation de deux d'entre eux pour contenir l'emplacement du cadre de la pile alors qu'il en suffirait un n'a tout simplement pas de sens pour moi. Pourquoi l'omission du pointeur d'image est-elle considérée comme une mauvaise idée, même dans les versions optimisées / de version?
alloca
) 3. facilité de mise en œuvre à l'exécution: gestion des exceptions, bac à sable, GC