為什麼16根位址匯流排的定址範圍是64KB

時間 2021-06-02 04:34:50

1樓:你貴姓

你的提問有2個問題

1)乙個原則問題,位址對應的是儲存單元,而不是資料匯流排寬度,"16根位址線對應16bits"完全是無端的聯絡。

2)定址範圍準確的說法應該是"64K",而不是"64KB"。定址能力是描述定址的總數量,是個完全的標量//沒有單位,大於0的純數字。如果加了B,就是賦予了單位為位元組,也就變相說明了這是一台以位元組作為儲存單元的電腦。

但如果物件不是一台以位元組為儲存單元的電腦,64KB這個說法就完全錯誤了。

小貼士:即便是64K這樣的說法也並不完全「準確」,K代表kilo,也就是10^3,64K也就是指64X1000=64000,這就錯了。16根線真正提供的定址能力應該是2^16,也就是64Ki(kibi=2^10)。

這也是因為長期混淆"K和Ki"的後果。

補充——關於位址"佔兩B":8086作為乙個16位儲存器,所以無論是他的段位址還是偏移位址(指標)各自都需要2個位元組儲存,也就是你說的佔"2b"。當使用的跳轉命令採用間接定址時,如「jmp [xx]」,需要指明總共取用多少位元組,如jmp word ptr [xx]的意思就是只取用兩B,既只取乙個偏移位址(指標)實現乙個短轉移。

2樓:片片

應該是資料放的位址有64KB個,資料線是8也就是1KB.這樣就解鎖通了。不要將位址線看成資料線,位址就是定址,每個房間放多少由資料線決定。

3樓:bobking

對於8086的記憶體空間來說,就是以Byte為單位來儲存的,所以2^16=64K,說的是能定址64K個Byte,所以定址範圍就是64KB,其實挺簡單。

4樓:minato丶

16根位址匯流排,每根位址匯流排代表乙個二進位制位,0或者1,所以所能尋得的記憶體單元有2的16次方個,乙個記憶體單元的大小為1B即1位元組,而1KB=節,所以2^16/1024=64KB

5樓:SwapX

匯流排寬度為16 可以掌握的位址是 0 到 2的16次方乙個位址對應一塊記憶體空間

掌握著65536塊記憶體空間一塊記憶體空間的大小是1B所以你能掌握的記憶體空間是65536*1B = 65536B = 64KB

6樓:小銘同學

用一棟樓來做栗子,位址就是樓的層數。一層二層三層就相當於位址,我們說位址為0003H單元就相當於你們家是三層,0003H單元中存放的內容為3CH就相當於三層那住了你們家。

所以說位址並不是和每一位(bit)對應的量,而是和每一位元組大小的記憶體空間一一對應。

7樓:雲天明

64k個位元組,所以叫6k bytes,64KB

不過話說,既然是16位資料匯流排,那麼為什麼不是64k個words呢……這樣32位最大定址也不是4gb了,而是16gb,而且強迫程式設計師和編譯器做好32位對齊/滑稽

80C51的定址方式中,為什麼立即定址對應的定址空間是ROM?

柯小西 我覺得是因為,立即定址的操作碼後面直接跟隨的就是立即數,也就是說,立即數和指令一起都是放在程式區的,所以,所涉及的定址空間就是ROM! 你這個問題問錯了吧。8051的內部memory空間可以分為 64K ROM空間 64K外部DATA空間 128B或者256B內部DATA空間 128B內部S...

為什麼要有不同的通訊協議?比如現場匯流排裡面,有 Modbus 還有其他的,為什麼不能共用乙個協議?

每個廠家 開發者 要求和裝置原因都有,廠家肯定希望客戶對自己有依賴性,開發者都是自己的習慣和自己的理解去開發,現有協議無法滿足要求 有的是協議結構性的有的是因為效率方面的 裝置方面好理解有的裝置效能無法滿足現有的協議。這幾個原因也是我見過的最多的幾個原因我見過的協議比較少。其實modbus可以說是相...

can匯流排的負載率為什麼要控制在30 以內?

ZLG致遠電子 出現這種情況的原因比較多,具體的原因還需要具體的分析 1 一般可能原因是,被測DUT和我們的CANScope傳送的ID相同,假設雙方同時發起傳送幀請求,在通過仲裁後 由於發的仲裁場內容相同可以通過 資料幀可能出現雙方傳送不一致的情況,就會出現錯誤幀了 2 很少出現 可能是DUT裝置的...