單片機內存和地址的關係

前言

第一次正經的在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 。

數據手冊中地址計算舉例

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章