51单片机中内部的存储有ROM和RAM,我想问,有没有什么方法把数据存进RAM,而不是通过MOV指令移进去?

2024年10月28日 18:51
有5个网友回答
网友(1):

你不想让这些数据占用单片机的空间,简单啊。

比如让计算机通过串口把数据123传给单片机,然后再让单片机执行MOV @R0,SBUF,这占用的字节和MOV @R0,#123一样多的。

或者在外面扩展24C02、AT28C64这样的存储器,那就不占用单片机内部的ROM空间了,但是访问这些存储器需要更多的代码。

如果你不想用串口、不想用扩展存储器,那就是不可能的了,或者说你很天真。

网友(2):

不是高手、路过围观。服了你的想法了。
运算器就是要有材料才能加工的,如果你没原始数据又怎么进行操作?
不想生成立即数就用指令在程序中动态生成数据,那样那些数据就只是消耗RAM而已,但是指令还是要消耗ROM空间的。比如用指令生成00~FF的数据到RAM中,然后索引寻址就得到需要的数据了。
不过,我宁愿浪费ROM也不想浪费那些少得可怜的RAM。

网友(3):

RAM 对应的是一些临时数据的存储。断电后就会消失。ROM断电后不会消失。如果不想占用内部的ROM 的话 或许外接ROM是一个选择。 但是你又想要程序能从ROM中调用出又想程序不占ROM的空间这。。。。有点。。。不科学啊!

网友(4):

现在单片机ROM空间一般不用你来考虑这个问题,除非你要搞一些极限的东西。倒是RAM的空间要节约着用。

网友(5):

没有办法。