独步天下 发表于 2025-9-4 03:59:56

每天一问,关于RAM与数据类型的存放关系

关于Ai8051U的RAM空间与数据类型有点让我困惑,32K的空间按字节存放8位数据,也就是char类型是32K字节(变量)空间可用,如果存放int数据,也是32K(变量)可用吗?还是变双字节拼凑变成16K的变量?


乘风飞扬 发表于 2025-9-4 11:22:52

AI8051U的xdata空间是32K BYTE
双字节变量可以存放16K个
此外还有2K BYTE的edata空间

独步天下 发表于 2025-9-4 17:43:49

乘风飞扬 发表于 2025-9-4 11:22
AI8051U的xdata空间是32K BYTE
双字节变量可以存放16K个
此外还有2K BYTE的edata空间 ...

{:4_213:}那感觉又回到8位机了, 一个字要二个字节凑合! 是不是我理解决出错了!

乘风飞扬 发表于 2025-9-5 09:33:23

独步天下 发表于 2025-9-4 17:43
那感觉又回到8位机了, 一个字要二个字节凑合! 是不是我理解决出错了!

32K字节是xdata空间的容量
8位机总线宽度是8位,只能一个字节一个字节读写
Ai8051U有8位/16位/32位宽度的总线,可以一次读写16位/32位数据

独步天下 发表于 2025-9-5 22:04:29

乘风飞扬 发表于 2025-9-5 09:33
32K字节是xdata空间的容量
8位机总线宽度是8位,只能一个字节一个字节读写
Ai8051U有8位/16位/32位宽度的 ...

多谢{:bangbangtang:}!!!也就是说,只在变量定义在 edata区,才可以可以读取一气呵成,不管是什么类型的数据,只要不超过32位

21cnsound 发表于 2025-9-6 07:29:18

独步天下 发表于 2025-9-5 22:04
多谢!!!也就是说,只在变量定义在 edata区,才可以可以读取一气呵成,不管是什么类型的数据,只要不 ...

你用C写代码,不用关心是否一气呵成,汇编器会自动判断位宽转换位相应的汇编代码。

jwd 发表于 2025-9-6 08:15:22

字本来就由字节拼起来的啊
页: [1]
查看完整版本: 每天一问,关于RAM与数据类型的存放关系