1樓:網友
程式執行時一般是程式段去呼叫資料段的內容,pentium彙編程式規定:如果程式段(比如作業系統程式段)的當前特權級(curren privilege level)高於或等於資料段(使用者資料)的特權級(request privilege level),這種資料訪問才是有效的。反過來如果程式段(使用者程式)的特權級低於資料段(比如作業系統的資料)的特權級,這種資料訪問會被禁止。
特權級分(二進位數)00,01,10,11. 其中00最高,11最低。
描述符特權級dpl(descriptor privilege level)用來表示該描述符對應的段的級別。而段選擇子(一般用於呼叫資料的是程式段的段選擇子,所以題目中所說的段選擇子很可能預設是程式段選擇子,其特權級是curren privilege level)
根據前述的規定,cpl要高於或等於dpl,而題目中cpl=3=11b,所以dpl必須低於或等於3,所以只能是3. 答案為d
2樓:網友
3,因為選擇子的特權級是3,相應的描述符的特權級必須是比他特權級還低的。
80x86在386以後怎樣實現儲存保護的? 80x86是怎樣保證實現多工的? 80x86有幾種特權級,各代表什麼意義?
3樓:
特權級,段暫存器中不再是段基址,而是段選擇子。段選擇子類似於指標,指向gdt或ldt中的描述符,描述符中的dpl規定了該段的特權級,低特權級不能訪問高特權級的段,實現了對儲存器的保護。中斷處理程式的入口記錄在idt中,io指令必須在等於或高於ring0指定的iopl的特權級進行,關鍵的指令也只能在ring0進行,實現了對硬體的保護。
在386以後加入了新的頁機制(虛擬記憶體),和段機制的手段差不多,段的大小是不固定的,而一頁的大小固定為4kb,簡化了**。段機制在保護模式有效,而頁機制由於基本忽略特權級的影響可以在虛擬8086模式中有效,段頁機制可以並存。
多工有多種實現方法,視作業系統而定。最直接的就是讓時鐘晶元隔一段時間發一次中斷,作業系統接到中斷後儲存當前程序的狀態,再恢復成另乙個程序的狀態,當然還有更高階的方法。這個在有中斷的平臺都能實現,只是引入保護後更「牢固」,不易被隨意破壞而已。
ringring0一般是作業系統、驅動之類。
ring3一般是普通程式。
為了保持可移植性(其他平臺只有兩個特權級),大多數作業系統只用最高和最低兩個特權級。
請問段暫存器在win32彙編中有什麼用
4樓:網友
win32裡段暫存器裡存放的是段選擇子, 作用也是帶定址的, 與真實模式相比,段選擇子代替了原來的段基址。從本質上來講,段選擇子最終還是要轉化成段基址。
段選擇子長16位,其格式如上圖所示。從圖中可見,段選擇子的高13位是描述符的索引值。所謂描述符索引是指描述符在描述符表中的序號。
由於描述符總是8個位元組的,所以將描述符索引值邏輯左移3位即可得到對應描述符在描述符表中的偏移位址,再加上描述符表起始位址就可以確定描述符的位置,這算是乙個小技巧。段段選擇子的第2位是引用描述符表指示位,標記為ti(table indicator),ti=0表示該選擇子指示的是全域性描述符表gdt中的描述符,ti=1表示該選擇子指示的是區域性描述符表ldt中的描述符。第0和第1位稱為rpl(request privilege level請求特權級),用於特權級控制,在上乙個問題中有詳細描述。
通過段選擇子,我們可以從gdt或ldt中找到需要的段描述符,段描述符中儲存著目標段的基址(起始位址),界限(段的範圍)以及其他一些控制資訊,由此,我們完成了段選擇子到段基址的轉化。
5樓:網友
變成了選擇子暫存器。
組合語言資料偽指令DUP用法,組合語言中的dup有什麼作用
茲斬鞘 10 dup 1 重複定義了10個字元素,初始值為1,佔用10 2 20個位元組。5 dup 重複定義了5個字元素 其初始值實際為0 佔用5 2 10個位元組 因此總共佔用30個位元組。具體分析 在彙編定義變數的時候會用到dup,變數名 型別 初值表,dup用於把一個相同值賦值若干次,重複次...
組合語言中符號的意思是什麼,在組合語言裡 符號代表什麼意思?
看圖你就會明白。實際上標號x1的首地址為ascii碼c的字單元地址,x2的首地址開始於 db 16 dup 語句,緊接著x1的終止地址,那麼它的首地址相對於x1偏移4 1個位元組單元 x2的終止地址相對於其首地址偏移16 1個位元組單元,相對於x1偏移18個位元組單元。那麼 x1實際上是當前地址與x...
組合語言壓棧出棧延時問題,組合語言中的棧,壓棧,出棧是什麼意思
壓棧並不改變r2的值,外層迴圈中djnz r2一次,r2就減1,而push 則就是保持這個值在delay3實現延時。組合語言中的棧,壓棧,出棧是什麼意思 就像乙個裝桌球的盒子,只有乙個口能開啟 裡面乙個球不放,就是空棧 往裡面放乙個球,就是壓棧 從裡邊拿乙個球,就是出棧 都放滿了,就是滿棧,再放就會...