2014-10-01 17 views
0

我一直在写基于x86-64架构的最新小内核。当照顾一些用户空间代码时,我意识到我几乎不使用rbp。然后,我看了一些其他的东西,发现编译器现在变得越来越聪明,他们真的不再使用rbp了。 (我可能在这里是错的。)rbp/ebp(x86-64)寄存器仍然以传统方式使用吗?

我想知道是否在许多情况下不需要常规使用rbp/epb,或者我在这里是错误的。如果不需要这种用法,那么它是否可以像通用寄存器一样使用?

由于

回答

0

它仅需要如果你在你的堆栈帧(记录数组长度将需要更多的存储器和更多的计算)具有可变长度的阵列。它不再需要展开,因为现在有用于此的元数据。

如果您手动编写整个装配功能,但它是谁呢?程序集只能用于粘贴到C(或其他)函数中。

相关问题