日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基地址和偏移地址的概念

發(fā)布時間:2024/4/11 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基地址和偏移地址的概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先必須明白 cpu和內存的區(qū)別

cpu 中央處理器 內存是物理數據存放的地方

cpu不直接存放數據而是通過內存來存放數據

cpu和內存之間通過20條地址總線相連接,地址總線就是cpu通過地址找到對應的內存的物理數據的傳遞工具

計算機只能處理0,1 二進制數據

每一條線可以處理 0,1 兩種類型數據

所以20根線的 總共能擁有 2^20=1048576個不相同的地址 也就是能搜索 1048576個地址范圍內的內存

那么 一個地址代表一個存儲單元 一個存儲單元能夠存儲 1byte數據

那么也就是1048576個地址 能夠找到 1048576個1byte數據=1M的數據

也就是說 20位地址總線總共也就能處理1M的內存 數據

?

然后cpu的尋址能力只能16位不能達到20位 怎么處理了

cpu的地址都是使用16進制表示

最多也只能找到 2的16次方 個地址 也就是65536個地址 只能處理 也就是只能處理 64K的內存數據? 64K內存的電腦能用???
這里就提出了段的概念 將1G的數據劃分為 n個段 每一個段 是64K

64K也就是65536個地址?? 16位的尋址就能找到了這65536個地址了? 難道每個64K的?相同的位置的地址都有同一個????但是有n個64MK歇菜了 還是找不到

真正的那個地址啊??

如果在加入一個地址了??? 這個地址用來處理n個 這個地址就是段地址

每一個段也就是每一個64K就是一個基地址? 段內的數據的地址就是當前基地址的偏移地址

此時 段地址+偏移地址就能夠找到真正的內存數據了

cpu表示的地址為:基地址:偏移地址 (2個16位的地址 2byte)

?

而偏移地址相當于在首地址的基礎上 移動的距離


比如?0BAC:0100

0BAC是基地址,0100是偏移地址

0BAC 4位的十六進制 表示 16位的2進制數據 轉換后為:

0000 1011 1010 1100 ??

必須要轉換成 20位(也就是5位的16進制) 才能在20位地址總線中傳遞 才能達到 1G的數據訪問范圍

怎么轉換成 20位 能讓數據傳遞到內存中找到物理數據了

內存的物理地址 =基地址*16+偏移地址

內存的物理地址 =0BAC*16+0100=0BAC0+0100=0BBC0H

0BBC0 就是5位的十六進制 ?就是 4*5=20位了 可以傳遞到內存了

實際傳遞二進制就是:

0000 1011 1011 1100 0000

20根地址總線就能處理了




32位匯編 32根地址總線 總共能夠直接 就找到? 2的32次方個地址 也就是4294967296 byte數據 也就是 4G的內存

而且不在將內存分成一段一段 所有的內存區(qū)域都是連續(xù)的?


總結

以上是生活随笔為你收集整理的基地址和偏移地址的概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。