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

总线、内存和变量的相关知识


前言

本篇文章主要介绍单片机内部的总线和内存的一些关系及知识点,


一、32位系统和64位系统的区别

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个字节。

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值