寄存器
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,包括通用寄存器、专用寄存器和控制寄存器。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分。
- 寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。
- 寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。
内存
计算机中最小的储存单位为字节,内存也不例外,每个字节作为一个储存单元。这样就将内存划分成了上亿个内存单元,为了方便管理这些单元,计算机选择了对每一个内存单元进行编号,想要使用一个内存单元时,只需要指定该内存单元编号(即内存地址)即可。为了能编号尽量多的地址,计算机使用了一个4字节(1byte = 8bit)的数来编址内存,这样可以对2^ 32块内存进行编址,每个块为1byte,2^32 byte = 4Gb,可以编址的内存大小为4G大小。
堆栈
首先必须明白堆栈可以指特定的存储区域,也可以指数据结构。
内存堆栈
计算机中的堆和栈是两种不同的内存管理方式。
- 栈由操作系统自动分配和释放,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。
- 堆由程序员分配和释放,一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回
收 。
数据堆栈
解释起来太麻烦了看以下链接。
链接1:数据结构中的堆栈和内存分配中的堆栈
链接2:堆和栈的内存分配
堆区(heap)
堆,优先队列(priority queue);普通的队列是一种先进先出的数据结构(FIFO—First-In/First-Out),元素在队列尾追加,而从队列头删除,(例如:N个人进入一段宽度只能容纳一人的狭长双向山洞,先进去的人肯定先出山洞,大家依次出洞);在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先取出。优先队列具有最高级先出 (largest-in,first-out)的行为特征。
数据栈区(stack)
栈,先进后出(FILO—First-In/Last-Out)(例如:一段狭长的山洞只有入口没有出口,宽度只能容纳一人,山洞里面的位置已经被占住了只能在队尾加入,出去也只能队尾先走)。