8086内存分段理解
生活随笔
收集整理的這篇文章主要介紹了
8086内存分段理解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
8086是16位CPU,CPU內(nèi)部
寄存器
都是16位。那么地址也是由CPU里面的寄存器提供的,故只能提供16位地址,可尋址64K空間。而8086覺(jué)得64K空間不夠用,引腳地址線非要弄成20條,尋址1M空間。但CPU里面地址只能是16位提供16位地址,里面的16位地址和外面的20根地址線矛盾怎么解決呢?只好多加了那幾個(gè)
段寄存器
,和一些如DI的指針寄存器。每次形成地址時(shí),根據(jù)不同的指令,系統(tǒng)會(huì)自動(dòng)選取一個(gè)段寄存器(16位)左移四位后再加上一個(gè)對(duì)應(yīng)的指針寄存器(在BIU里的地址
加法器
中完成),形成實(shí)際的物理地址20位輸出,可尋址1M空間。你看四個(gè)段左移四位后形成20位的實(shí)際物理地址的段基址,再加上各自的指針64K的范圍,四個(gè)段每個(gè)都是64K。 總結(jié):8086采用這種段加偏移技術(shù),可以解決內(nèi)部寄存器16位,但可提供20位地址的問(wèn)題,將外尋址空間擴(kuò)大到1M。我們?cè)诔绦蜃畛鯇S DS SS ES給初值后,那這四個(gè)段在1M空間中的起始位置就確定了,由于每段對(duì)應(yīng)的指針(如DI)是16位,故每段大小是64K。當(dāng)然CS,DS還可以再重給初值對(duì)段重新定義,CS,DS可以相同幾個(gè)段重疊(如果放得下的話),也可以分開(kāi)。大致是這樣,不知你明白了沒(méi)?
總結(jié)
以上是生活随笔為你收集整理的8086内存分段理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ARM的CACHE原理(转)
- 下一篇: 运行地址和加载地址