【发布时间】:2018-01-16 19:07:45
【问题描述】:
我刚刚开始学习汇编(我之前曾与c++ 合作过)。
我想知道为什么我们除了使用内存之外还需要使用寄存器,为什么不只使用内存呢?
我想最明显的原因是在寄存器中进行计算比在内存中进行计算要快得多。但这是唯一的原因吗?
【问题讨论】:
-
请注意,在寄存器文件中实现寄存器并不少见,这是 sram 的另一个术语。寄存器本身只是一个具有地址和数据总线以及控制信号的片上 SRAM。虽然它是处理器可以运行的最快速度,但请参见下面的答案,内存在芯片外或处理器核心内存中,通常非常非常慢,尤其是 DRAM。
-
有些处理器大多基于 ram,基于堆栈的处理器基本上认为小型 c 或 pascal、java、python、基于堆栈的虚拟机,但也有使用类似指令集构建的真实机器。
-
我对这里的答案或我找到的副本(尤其是这个版本的问题)并不完全满意,所以我发布了stackoverflow.com/questions/2360997/…。寄存器和内存之间更重要的区别之一是寄存器编号必须硬编码到机器代码中,而不是索引,因此 CPU 总是立即拥有它们。 x86 被设计为注册机,最初我认为是出于代码密度的原因。这样可以实现高性能。
标签: c++ assembly x86 cpu-architecture cpu-registers