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


前言

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


一、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位
char 1 Byte 1 Byte 1 Byte 1 Byte
short int 2 Byte 2 Byte 2 Byte 2 Byte
int 2 Byte 2 Byte 4 Byte 4 Byte
long int 4 Byte 4 Byte 4 Byte 8 Byte
long long 8 Byte 8 Byte 8 Byte 8 Byte
float 4 Byte 4 Byte 4 Byte 4 Byte
double 8 Byte 8 Byte 8 Byte 8 Byte
指针 1 Byte 2 Byte 4 Byte 8 Byte

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

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

  1. 64位计算机比32快多少,64位系统和32位系统哪个速度快

    在配置较高的电脑64位会更快一些.若是配置较低运行内存小于4G的电脑,若是装了64位系统则有可能会卡频. 64位的优缺点(以win7为例): 优点:win7 64位系统最大的优点体现在内存上.它可以使 ...

  2. 内核知识第九讲,32位下的分页管理,36位下的分页管理.以及64位下的分页管理

    内核知识第九讲,32位下的分页管理,36位下的分页管理.以及64位下的分页管理 一丶熟悉WinDbg的常见命令. dd 虚拟地址      显示内存. !dd 加上!,        ! dd 物理地 ...

  3. 计算机32位可以安装的游戏,【64位系统能装32位的软件吗】64位系统安装32位软件_64位系统能玩32位游戏吗-系统城...

    2017-11-25 18:15:36 浏览量:1840 能用普通U盘来装系统吗?我们知道光盘是安装系统最传统的工具,普通U盘和光盘一样都是存储工具,那么能将普通U盘制作成装系统的U盘,然后用U盘装系 ...

  4. 32位 shell.efi x86_通过grub,让32位的efi也能运行64位的Linux发行版

    GRUB是什么 是一个来自GNU项目的启动引导程序.GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统.GRUB可用于选择操作系统分区上的 ...

  5. Wow64(32位进程)注入DLL到64位进程

    http://blog.poxiao.me/p/wow64-process-inject-dll-into-x64-process/#Wow64环境下32位进程注入64位进程 DLL注入 向其他进程注 ...

  6. python 32位 64位 同时_windows系统python 32位与python 64位共存的方式

    最近想学习通过python和大漠插件相结合的方式写游戏脚本,但是在实现的过程中发现大漠插件只支持32位的python,对64位python不支持,而我又不想放弃我windows 10 上面已有的64位 ...

  7. 华为matebooke不能下python_为什么华为matebookE明明是64位配置装Pr之类的64位软件却显示32位无法安装64位?...

    为什么华为matebookE明明是64位配置装Pr之类的64位软件却显示32位无法安装64位? 按照图上来说你已经是64位系统了,装不了或者不能用的并不因为你升级成专业版就可以用,还是一样的情况.至于 ...

  8. 如何把32位的注册表文件转换为64位的?

    问题:比如 我的系统是64位的WIN7,但下载的极品飞车14的注册表导入文件却是32位的,于是不能用,还好网上有人做了64位的导入文件.我想知道那些达人是怎么把32位的改成64位的? 把32位的注册表 ...

  9. 预装64位Win8/8.1电脑安装64位Win7详细过程(单/双系统)

    http://www.iruanmi.com/install-64bit-windows-7-on-a-pre-installed-win8-pc/ 很多人买了预装64位Win8/8.1的电脑后想重装 ...

最新文章

  1. 使用MarkDown编辑器做出有意思的柱状图(完整代码)
  2. S9306开启web功能!
  3. mysql自增字段不连续_MySQL中自增主键不连续之解决方案。(20131109)
  4. 十年编程经验输给新晋AI工程师,6个月我们带你绝地反击
  5. C 线程的使用~(下)
  6. 数据结构实验六 综合数据处理
  7. 云原生与数据中台,企业数字化转型的“正确打开方式”
  8. H264之sps解析分辨率
  9. IDEA中添加Tomcat配置,Run/Debug Configurations中没有Tomcat选项
  10. React中函数式声明组件
  11. 【Webcam设计】USB摄像头图片采集+QT显示
  12. Vue实现左右菜单联动实现(更新)
  13. linux系统移植到arm芯片难吗,Linux操作系统怎么移植到ARM平台?
  14. 【车载】FMEA、FTA、FMEDA
  15. 四大金融资产管理公司的起起伏伏
  16. 盗版windows7危害大
  17. win7、win10系统双屏显示任务栏
  18. 华为使用计算机投屏要打开什么,华为Mate20手机怎么投屏到电脑上呢
  19. 利用简单的爬虫获取CV顶会论文
  20. #积分制管理感言#河北沧州盛世今典广告传媒赵胜

热门文章

  1. 02Hadoop安装教程_单机、伪分布式配置
  2. VS2010制作安装程序
  3. 【常见 Error Bug】Vivado仿真报错 ERROR: [XSIM 43-3322] 解决方法
  4. 构建Delaunay三角网的VB源程序
  5. java向现有的excel插入数据列
  6. Oneday01 | ~scanf、冒泡排序、sort排序
  7. 接口测试平台代码实现48: 自动异常测试-1
  8. Unity3D: 精灵更换图片脚本实现
  9. 最全的PHP正则表达式
  10. 科技百咖 | 天威诚信:韶光与共,不负前路