8086是16位cpu,cpu內部
暫存器都是16位。那麼位址也是由cpu裡面的暫存器提供的,故只能提供16位位址,可定址64k空間。而8086覺得64k空間不夠用,引腳位址線非要弄成20條,定址1m空間。但cpu裡面位址只能是16位提供16位位址,裡面的16位位址和外面的20根位址線矛盾怎麼解決呢?只好多加了那幾個
段暫存器
,和一些如di的指標暫存器。每次形成位址時,根據不同的指令,系統會自動選取乙個段暫存器(16位)左移四位後再加上乙個對應的指標暫存器(在biu裡的位址
加法器中完成),形成實際的實體地址20位輸出,可定址1m空間。你看四個段左移四位後形成20位的實際實體地址的段基址,再加上各自的指標64k的範圍,四個段每個都是64k。 總結:8086採用這種段加偏移技術,可以解決內部暫存器16位,但可提供20位位址的問題,將外定址空間擴大到1m。我們在程式最初將cs ds ss es給初值後,那這四個段在1m空間中的起始位置就確定了,由於每段對應的指標(如di)是16位,故每段大小是64k。當然cs,ds還可以再重給初值對段重新定義,cs,ds可以相同幾個段重疊(如果放得下的話),也可以分開。大致是這樣,不知你明白了沒?
8086儲存器的分段組織與管理
1 熟悉8086儲存器的分段管理方式。2 掌握儲存單元位址的兩種描述方式 實體地址和邏輯位址,以及從邏輯位址到實體地址的換算方法。記憶體是設定在主機內部的儲存器,能被cpu直接訪問,主要用來存放當前執行的程式和所需的數 據,以便隨時向cpu提供資訊。它與cpu的聯絡最密切,若把cpu比作生產成品的工...
記憶體分段 記憶體分頁 虛擬記憶體
程式通過鏈結器,多個檔案合併成乙個最終可執行檔案。可執行程式載入後占用的記憶體空間應該是連續的,因為執行指令的時候,程式計數器是順序地一條一條指令執行下去。這也就意味著,這一條條指令需要連續地儲存在一起。我們電腦肯定是要執行好多個程式的,在記憶體裡面肯定占用多個連續的分段,但是假如其中乙個程式退出,...
8086彙編 記憶體互動
計算機資料可以被儲存在記憶體與磁碟中,對於計算機來說他們不同的資料有著不同的含義,他們可以被分為指令與資料,而這些儲存在計算機的資料都會有著固定的大小,根據計算機的儲存單元來決定。資料量 b kb mb gb tb.儲存單元 計算機對於資料都是採取二進位制的方式儲存,而對於cpu管理,資料主要以十六...