在學習8086/8088儲存器結構時,產生了個疑問:既然高四位表示的是段基址、低四位表示的是偏移位址,那麼乙個20位實體地址只能表示乙個邏輯段中的16個位址,我們知道乙個邏輯段中有64k位元組,這顯然是不可能的。
首先說說為什麼把20位的實體地址分成段基址+偏移位址?
8086/8088系統中儲存器按位元組編址(乙個位元組分配乙個位址編號),可定址的儲存器空間為1mb即2^20,因此每個位元組對應的位址應是20位的二進位制數,這個二十位二進位制數就是實體地址。
那麼,二十位的實體地址在cpu內部就應有20位的位址暫存器,而機內的暫存器是16位的(16位機),16位暫存器只能定址64kb。為了使cpu能夠訪問儲存器的每乙個位址,將儲存器分為16個或更多個邏輯段,每個邏輯段最大容量為64kb。cpu在訪問儲存器空間時先找到其對應的邏輯段,然後在找到具體的位址,這就有了段基址+偏移位址。
在8086/8088儲存空間中,把16位元組的儲存空間稱為一節。邏輯段從節的整數邊界開始,也就是說段首位址低四位應該是0,而低四位的定址範圍也就是這一節中的那16個位元組。所以段基址是邏輯段中某一節的首位址而不是邏輯段的首位址。實際上通過高16位就找到了要訪問的邏輯段的某一節,然後根據偏移量找到具體位址。
8086 8088 處理器結構
8088共有8個通用暫存器,1個標誌暫存器 4個段暫存器和1個指令指標暫存器。一 通用暫存器 資料暫存器 共ax bx cx dx四個,每個暫存器即可作為16位暫存器,又可拆分為兩個8位暫存器,此時記為ah al bh bl等。ax ah al 累加器accumulator bx bh bl 基址暫...
關於儲存器
查了好多資料 進行乙個小的總結,侵刪 儲存器這個名詞包含的範圍很大,它幾乎涵蓋了所有關於儲存的範疇。暫存器 記憶體 外儲存器都是儲存器裡面的一種。凡是有儲存能力的硬體,都可以稱之為儲存器。快取就是資料交換的緩衝區 稱作cache 硬體系統需要讀取資料時,會首先從快取中查詢需要的資料,如果找到了則直接...
8086 8088 CPU暫存器組
今天來回顧一下8086 8088 cpu暫存器組的知識。其實8086彙編還是很久以前學過的,win32彙編也接觸過一些,但是由於長時間不碰,生疏了不少。今後可以花點時間總結總結,梳理一下以前學習過的知識,儘管暫時還用不上,但這樣就便於以後需要用到的時候很容易撿起來。我知道裡大多數人都是搞web或者手...