打印
[技术问答]

单片机8位、16位、32位和64位系统在内存上的区别

[复制链接]
2298|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dspmana|  楼主 | 2024-5-24 21:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 8位、16位、32位和64位CPU的含义

如标题所述,不同位数的单片机的主要区别在于能处理多长的数据。如经典的8位单片机80C51,其一次性能处理8bit的数据,其寄存器的长度也是8位;TI的16位单片机能处理16bit的数据,寄存器为16位;STM32能处理32bit的数据,寄存器为32位。需注意的是8位单片机不带表其地址总线是8位。8位的51单片机,其数据总线是8位的,但其地址总线是16位,即其最大寻址空间为64KB。以Cortex-M3为内核的32位单片机,其地址总线是32位,其寻址空间为2^32(4GB)。最后,可以总结为能处理多少位的数据就是多少位的单片机。

2.变量所占内存的区别

不同位数的CPU(单片机)的变量所占的内存也不尽相同,具体如下表所示。

8位16位32位64位
char1 Byte1 Byte1 Byte1 Byte
short int2 Byte2 Byte2 Byte2 Byte
int2 Byte2 Byte4 Byte4 Byte
long int4 Byte4 Byte4 Byte8 Byte
long long8 Byte8 Byte8 Byte8 Byte
float4 Byte4 Byte4 Byte4 Byte
double8 Byte8 Byte8 Byte8 Byte
指针1 Byte2 Byte4 Byte8 Byte

注:
1)上述表格适用于KEIL C51 和 KEIL MDK两个版本中,不一定适用于其它编辑器,具体内容,请查看KEIL软件手册。
2)CPU的位数不能决定int占几个字节,int是一个关键字,只能本编译器识别,CPU不能识别int。对于C语言,同一32位系统PC机上,TC2.0编译器给int分配2个字节,VC6.0给int分配4个字节。


使用特权

评论回复
沙发
tpgf| | 2024-6-4 15:21 | 只看该作者
无论是多少位单片机 相同的数据类型占用的空间大小都是相同的吧

使用特权

评论回复
板凳
八层楼| | 2024-6-4 16:00 | 只看该作者
现在使用64位的还是相对来说比较少的 感觉有点奢侈啊

使用特权

评论回复
地板
观海| | 2024-6-4 19:37 | 只看该作者
八层楼 发表于 2024-6-4 16:00
现在使用64位的还是相对来说比较少的 感觉有点奢侈啊

不会的 现在很多产品应用的都是高端单片机了

使用特权

评论回复
5
晓伍| | 2024-6-4 20:09 | 只看该作者
这里所谓的能处理多长的数据是说能同时处理的数据的长度是吧

使用特权

评论回复
6
磨砂| | 2024-6-4 20:41 | 只看该作者
使用64位系统的好处体现在哪些方面呢

使用特权

评论回复
7
木木guainv| | 2024-6-4 21:13 | 只看该作者
64位操作系统对数据的吞吐量更大是吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

2555

帖子

2

粉丝