8086尋址方式

8086尋址方式

16位的8086cpu中運(yùn)算器一次最多可以處理16位的數(shù)據(jù),寄存器的最大寬度為16位,寄存器和運(yùn)算器之間的通路為16位。也就是說在8086內(nèi)部,能夠一次性處理,傳輸,暫存的數(shù)據(jù)信息最大長度是16位。

由于8086有20位的地址總線,可以傳送20位地址,尋址能力能達(dá)到1M。而8086又是16位的結(jié)構(gòu),內(nèi)部能夠一次性處理,傳輸,暫存的數(shù)據(jù)信息最大長度是16位,尋址能力僅能達(dá)到64K。所以在8086采用在內(nèi)部將兩個(gè)16位的地址合成一個(gè)20位的物理地址的方式進(jìn)行尋址。

當(dāng)8086要讀寫內(nèi)存時(shí):

  1. cpu相關(guān)部件提供兩個(gè)16位的地址,一個(gè)叫段地址,一個(gè)叫偏移地址
  2. 內(nèi)部總線將兩個(gè)地址送入一個(gè)叫地址加法器的部件中
  3. 地址加法器通過段地址*16+偏移地址的算法將兩個(gè)16位地址合成為一個(gè)20位的物理地址
  4. 地址加法器通過內(nèi)部總線將20位物理地址送入io控制電路
  5. io控制電路將20位物理地址送上地址總線
  6. 20位的物理地址被地址總線送到寄存器

比如8086要訪問123C8的內(nèi)存單元,則加法計(jì)算(16位)的工作為:1230*16+00C8 = 12300+00C8 = 123C8。當(dāng)然通過該算法生成123C8的段寄存器和偏移寄存器不是唯一的。

8086匯編的相關(guān)筆記來自 小碼哥 MJ iOS底層視頻 以及 王爽《匯編語言(第三版)》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容