回覆列表
  • 1 # 使用者9866520236700

    在早期的處理器中,比如8086/8088,最大可定址1M空間,及20位寬度,而cpu的暫存器僅是16位的,也就是說一個cpu暫存器僅能定址64k,這就產生了矛盾。所以要用兩個暫存器來表示地址,看下面的例子:

    比如現在有這樣一個問題,一個學校有50個班(1班,2班,...,50班),每個班有60名學生,怎麼標記識別出每個學生呢?簡單:把所有學生從1開始編號,到3000為止。每個號碼代表一個學生即可,但是有這麼一個問題,如果有一個電子顯示牌用於老師點名,由於技術及成本原因,只能顯示兩位數字,並且最大數是60(00-60),那麼怎麼用顯示牌標記出所有學生呢。比如第300號學生?答案就是做兩個顯示牌,第一個顯示牌顯示班級,第二個顯示牌顯示其在班級中的編號。

    而每個學生的最終編號 = 班號*60 + 在班級的編號

    這裡學生的最終編號和記憶體地址是一樣的,班號就是段暫存器,在班級的編號就是偏移地址。

    實質就是16位cpu的記憶體地址線有20根,16

    現代cpu一般有多個模式,dos作業系統工作在真實模式,不論cpu多先進和8086的區別只是速度快,但僅能使用1M記憶體(段地址+偏移地址),而windows工作在保護模式,能識別32位地址記憶體,又稱為flat模式,不用分段。

  • 中秋節和大豐收的關聯?
  • 為什麼有人說找女朋友難於上青天?