從8086開始採用分段的方法管理儲存器。只有充分理解儲存器分段的概念和儲存器邏輯位址和實體地址的關係,才能熟練地使用8086/8088組合語言。
* 儲存單元的位址是無符號數,n 位二進位制數總共能夠表示 2n 個儲存單元的位址。為了書寫方便,儲存單元位址常採用十六進製制數表示。
* 當以字方式訪問字時,處理器自動採用「高高低低」原則。
* 8086/8088 cpu 有 20 根位址線,可直接定址的實體地址空間為 1m 位元組(=220)。
* 系統儲存器由以位元組為單位的儲存單元組成,儲存單元的實體地址長 20 位,範圍是 00000h 至 fffffh。
* 為什麼要分段
8086/8088 微處理器內部資料通路和暫存器皆為 16 位,內部 alu 只能進行 16 位運算,在程式中也只能使用 16 位位址,定址範圍侷限在 216=65536(64k)位元組。
通過對儲存器分段和使用段暫存器的方法,8086/8088 有效地實現了定址 1m 位元組物理空間。
* 按照這兩個條件,1m 位元組位址空間最多可劃分成 64k 個邏輯段,最少也要劃分成 16 個邏輯段。
第乙個條件與段暫存器長 16 位有關;(16 位擴充套件成 20 位,位址按照 遞增)
第二個條件與指標暫存器長 16 位有關。
由於段的起始位址必須是 16 的倍數,所以段起始位址有如下形式:
bbbb,bbbb,bbbb,bbbb,0000
用 16 進製可表示成 ***0。這種 20 位的段起始位址,可壓縮表示成 16 位的 ***x 形式。
我們把 20 位起始位址的高 16 位 ***x 稱為段值。顯然,段起始位址等於段值乘 16(即左移 4 位)。
要訪問的某乙個儲存單元總是屬於某個段。我們把儲存單元的位址與所在段的起始位址的差稱為段內偏移,簡稱為偏移。在乙個段內,通過偏移可指定要訪問的儲存單元,或者說要訪問的儲存單元可由偏移量來指定。在整個 1m 位址空間中,儲存單元的實體地址等於段起始位址加上偏移。
採用段值和偏移構成邏輯位址後,段值由段暫存器給出,偏移可由指令指標 ip、堆疊指標 sp 和其他可作為儲存器指標使用的暫存器(si、di、bx 和 bp)給出,偏移還可直接用 16 位數給出。指令中不使用實體地址,而是使用邏輯位址,由匯流排介面單元 biu 按需要根據段值和偏移自動形成 20 位實體地址。
IP位址分類和分段
ip位址是由32位二進位制數字構成,採用 點分十進位制 方法表示的唯一位址。通常區分如下 1 五類ip 2 特殊用途的ip 3 私有ip 1 五類ip 也就是說,分為以下幾類 a 0.0.0.0 127.255.255,其中段0和127不可用,可用位址範圍1.0.0.0.127.255.255.25...
分頁儲存管理和分段儲存管理
1.採用相聯儲存器後位址轉換過程,用圖表示出來。答 2.詳述分段管理和分頁管理的區別。答 分段是資訊的邏輯單位,有源程式的邏輯結構及含義所決定,是使用者可見的,段長由使用者根據需要來確定,段起始位址可從任何記憶體位址開始。在分段方式中,源程式 段號 段內位移 經鏈結裝配後仍保持二維 位址 結構,引入...
分頁儲存管理和分段儲存管理
1.採用相聯儲存器後位址轉換過程,用圖表示出來 2.詳述分段管理和分頁管理的區別。分頁管理 分頁儲存管理是將乙個程序的邏輯位址空間分成若干個大小相等的片,稱為頁面或頁,並為各頁加以編號,從0開始,如第0頁 第1頁等。相應地,也把記憶體空間分成與頁面相同大小的若干個儲存塊,稱為 物理 塊或頁框 fra...