gpt4 book ai didi

assembly - 为什么编译器不使用 ENTER 和 LEAVE 指令?

转载 作者:行者123 更新时间:2023-12-05 03:51:28 44 4
gpt4 key购买 nike

<分区>

阅读程序的反汇编时,我注意到了一种模式。在设置函数的框架时,很少使用指令enter。我还在最新的 GCC 中使用了编译器资源管理器——GCC 不使用 enter 但使用 leave

为什么不使用指令enter?为什么编译器使用两条或更多条指令来执行可以在一条指令中完成的操作? (压入 rbp,保存 rsp,并使用 sub rsp 在堆栈上分配,而不是使用 enter 0x20, 0)。但是 leave 被使用了……还有什么我不知道的 leave 吗?据我所知,leave 相当于

mov ebp, esp
pop ebp

GCC 使用 leave 而 MSVC 不使用。我不明白为什么从不使用 enter 而有时使用 leave

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com