實模式和保護模式下的位址計算方式

2021-07-22 04:19:31 字數 508 閱讀 7069

關於保護模式下的定址方式,是眾所周知的,比如:

movedi, [dwdisppos] ;dwdisppos是乙個標識資料的label

首先通過ds中的選擇子所存的偏移和gdtr找到段描述符,然後取出段描述符中的基址加上dwdisppos所指示的偏移(此偏移是相對於cs段基址的,因此為了正確地取得資料,ds段基址應該與cs段基址相同)。之後再通過分頁機制將所得的線性位址轉換到實體地址。

那麼關於實模式下的定址方式是怎樣的呢,比如:

movword [wsectorno], 19 ;wsectorno是乙個標識資料的label

由於實模式下沒有段選擇子和分頁機制,所以簡單了許多,這個位址就是ds*16+wsectorno,wsectorno的偏移也是相對於cs值的,因此為了正確地取得資料,一般在程式的開始會有:

mov ax,cs

mov ds,ax

mov es,ax

mov ss,ax

無論是保護模式和實模式,計算位址時都是有段基址參與的。

實模式和保護模式下的位址計算方式

關於保護模式下的定址方式,是眾所周知的,比如 movedi,dwdisppos dwdisppos是乙個標識資料的label 首先通過ds中的選擇子所存的偏移和gdtr找到段描述符,然後取出段描述符中的基址加上dwdisppos所指示的偏移 此偏移是相對於cs段基址的,因此為了正確地取得資料,ds段...

實模式和保護模式

實模式 即實位址訪問模式 它是intel公司80286及以後的x86 80386,80486和80586等 相容處理器 cpu 的一種操作模式。實模式被特殊定義為20位位址記憶體可訪問空間上,這就意味著它的容量是2的20次冪 1m 的可訪問記憶體空間 物理記憶體和bios rom 軟體可通過這些位址...

實模式和保護模式

無法支援多工 程式設計師多個程式可能指定執行的實體地址一樣 程式的安全性無法得到保證 使用者程式可以改寫系統空間或者其他使用者的程式內容 實模式將整個物理記憶體看成分段的區域,程式 和使用者程式沒有區別對待,而且每乙個指標都是指向 實在 的實體地址。這樣一來,使用者程式的乙個指標如果指向了系統程式區...