单片机内存和地址的关系

时间:2024-03-21 12:50:34

前言

第一次正经的在CSDN写博客,希望以后能坚持下去,把所困惑的知识点能记录下去,待以后方便查找,立个flag吧

关于单片机地址和内存的关系

开门见山, 0x00H——0x01H地址范围内表示多大内存?1个字节?很多人都这么认为,但是是错的。
一直对单片机内存大小和地址之间的关系比较糊涂,多次搞错。
首先:每一个内存地址如0x01H、0x00H、0x03H,代表的某一个内存块,而单片机中最小存储单位就是一个字节,即单片机以字节为单位进行存储,所以0x00H 这个地址代表了 一个字节,即1Byte,这一个字节中包含有8个数据位,即1Byte = 8 bit;
1GB = 1024KB ;
1KB = 1024B;
所以给出一段地址范围,计算所表示内存的大小,就是让你 计算在这个地址范围内所能表示出的最小内存块的个数
所以 0x00H——0x01H地址范围内表示多大内存? 当然是2个字节,即2Byte。
地址0x0000H ——0xFFFFH表示多大内存?当然是64KB;
计算方法: 地址作差,即0xFFFF(注意此时他就是纯粹的16进制数,而非地址)。那这个地址范围内所能表示出的最小内存块的个数 是多少? 是 216 +1-1个 ,即 216个。每一个都表示了单片机内部最小存储块1Byte,所以总共代表了216B = 26KB = 64KB 。

数据手册中地址计算举例

单片机内存和地址的关系