历史上的今天
今天是:2026年03月14日(星期六)
2023年03月14日 | 寄存器,存储器,RAM,ROM有什么区别?
2023-03-14 来源:zhihu
这些都是比较抽象的专业名词了,特别是寄存器,很多人在学单片机的时候对这个一脸懵逼,寄存器到底是个啥玩意?
其实不用很深刻的理解它到底是什么,你只需要知道通过配置寄存器的值,就可以把外设用起来。
我做单片机开发的这10几年,接触寄存器非常多,比如单片机有寄存器,很多外围芯片也有寄存器(EEPROM、FLASH、时钟芯片等),只要你掌握其中一个,其它的都可以触类旁通。
就像密码锁一样,设置正确的密码,锁就会打开,寄存器也是一样,设置正确的值,芯片资源就能为你所用。
下面更加全面地介绍下它们之间的区别:
一、寄存器
在单片机应用上,寄存器(register)通常用于存储程序的运行时状态,例如程序计数器(Program Counter,PC)用于存储下一条将要执行的指令的内存地址。
它还可以用于存储一些临时变量、函数参数、返回值等。
那这样做有什么优势呢?
举个例子:
假设你正在做一道复杂的数学题,中间有些计算结果需要暂时存起来。
你可以将这些结果写在纸上,但每次需要使用时,都要去找到对应的纸条,这可能会很耗时。
而如果你将这些中间结果直接写在自己手上,你是不是可以更快找到它们?这样你就可以更快地完成整个数学题。
在计算机中,寄存器就像是计算机的“手”,用于暂存中间结果,让程序更快地运行。
那人只有两只手,不能记太多数据,寄存器也是一样的,是稀缺资源,容量也很小,且它的数据在断电后就消失了。
寄存器、存储器、RAM和ROM都是计算机系统中常见的术语,它们在计算机的存储系统中都扮演着不同的角色,下面将对它们进行通俗易懂的解释。
二、存储器
我们先来看一张图:

其实RAM和ROM都是属于存储器,RAM代表随机存储器,ROM代表只读存储器。
1.RAM
随机存储器(RAM)是计算机存储器的一种,它的特点是数据可以随机存取。
读取和写入速度非常快,但需要不间断的电源供应。
RAM可以被CPU读取和写入数据,且存储器中的数据在断电后会丢失。
RAM还分为静态存储(SRAM)和动态存储(DRAM)两种,SRAM比DRAM速度更快,所以价格也更贵。
在单片机应用里面,一般RAM用来存变量、函数参数、返回值等数据,掉电后数据会丢失。
2.ROM
只读存储器(ROM)是一种只能读取数据,不能写入数据的存储器,数据一旦写入之后就无法更改。
ROM存储器中的数据是固化在芯片中的,断电后数据不会丢失。
ROM被用于存储固化的程序和数据,例如BIOS、固件等。
常见的ROM有EPROM、EEPROM、Flash等。
在单片机的应用里,ROM一般用来存储程序,或者一些固化的图片数据。
三、总结
寄存器、存储器、RAM和ROM都是计算机存储系统中的重要部分。
它们的主要区别在于容量、速度、可读写性和数据的持久性等方面。
寄存器的容量最小,速度最快,但数据在断电后会丢失。
存储器容量比寄存器大,读写速度慢,但数据可以持久保存。
RAM可以读写数据,但数据在断电后会丢失;
ROM只能读取数据,数据可以长期保存。
它们的特性不同,在计算机系统中分别扮演不同的角色。
寄存器通常用于存储CPU内部的临时数据和控制指令。
存储器被用来存储计算机程序和数据,包括操作系统、应用软件和用户数据等。
RAM用于存储需要频繁读写的数据,例如程序运行中的变量和缓存等。
而ROM则被用来存储固化的程序和数据,例如BIOS、固件、启动程序等。
下一篇:单片机常用的开发软件有哪些?
史海拾趣
|
小弟最近在搞一个无线传输的论文,就是用GPRS模块实现无线数据传输。但是不清楚如何操纵GPRS模块才能把数据发送到固定的IP地址。我现在知道的有如下知识:要是实现GPRS模块与Ethernet链接,需要先进行ppp拨号,但是拨号之后就不清楚怎么才把数据发 ...… 查看全部问答> |
|
最近打算在WINCE下开发一个天气预报软件, 资源就用http://www.webxml.com.cn所提供的提前预报资料..我上该网看了下, 那里有教如何使用函数来查询天气情况并且获得返回的字符数组.. 看了看实例代码, 那是VB.NET写的, 就其中一句 Imports cn.com.we ...… 查看全部问答> |
|
在skyeye上面启动uClinux的时候报段错误 [root@localhost uClinux-dist]# skyeye -e linux-2.4.x/linux arch: arm cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0 mach info: name at91, mach_init addr 0x8071ad4 can\'t find device mod ...… 查看全部问答> |
|
linux内核完全剖析 基于0.12内核 赵炯 的 200901的 txt doc pdf 的下载版本地址 谁有就给个链接吧 谢谢了哈 嘿嘿… 查看全部问答> |
|
WinCE下的Display驱动直接由GWES模块管理,它会直接被GWES模块管理和调用。Display驱动实际上也是分层的,其中包括GPE库,该库处理一些默认的绘图,相当于驱动的MDD层。用户只需要开发和硬件相关的PDD层驱动就可以了… 查看全部问答> |




