0

哪个更快更有用?累加器、寄存器还是堆栈?

4

5 回答 5

4

寄存器是最快的。累加器也是存储中间算术和逻辑结果的寄存器(来自维基百科的信息)。

堆栈会更慢,因为它是一个内存区域,并且内存总是比寄存器慢。

但是,由于 CPU 存储非常昂贵,因此您将始终拥有比寄存器更多的可用内存。

底线:它们都很有用,而且它们的速度与它们的可用存储空间成反比。

于 2010-12-18T16:26:34.923 回答
1

没有任何关于 CPU 架构或您想要完成的其他信息的上下文的问题无法以任何有用的方式回答。

通常累加器只是寄存器之一——现代 CPU 不再区分,所以对于旧的累加器可能更快——或者实际上是唯一允许您进行某些操作的寄存器。寄存器总是比外部存储器快,但它们的数量有限(它们需要由编译器/汇编器明确命名)。

堆栈是用于存储数据的 RAM 区域。所以肯定会更慢:)

于 2010-12-18T16:18:35.303 回答
1

问题不太正确。“快速”与操作有关,而不是与寄存器等有关。另一点 - 第一条消息中没有关于 CPU 架构的内容 :-)

根据 CPU 架构,累加器是一个寄存器,但可以有一个特殊的实现。这样,使用累加器的操作通常比寄存器操作更快。

关于堆栈。有些处理器不支持Register-Register 操作(即输入-输出处理器)。这种情况下,堆栈上的某些操作可以更快,因为不需要计算有效地址。

于 2010-12-18T17:23:16.583 回答
0

寄存器总是更快,因为它不会将数据放入内存,但更清楚情况。

当您有许多类似 x64 或 Arm 架构时,寄存器很有用。

于 2010-12-18T16:17:33.473 回答
0

通常,寄存器更快,因为它们实际上是微处理器的一部分。而累加器只是寄存器之一(通常存储各种运算结果的寄存器)。

堆栈就像任何其他内存一样,只是为了跟踪返回地址和局部变量而分配的内存。

但是您不能对所有内容都使用寄存器,因为可用的寄存器数量非常有限。

如果您解释了为什么要问这些问题,它们可能会更有意义。

于 2010-12-18T16:41:06.973 回答