国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

RING0到RING3

2024-06-28 13:27:13
字體:
來源:轉載
供稿:網友
RING0到RING3在前一篇文章里面,我們將了CPU保護模式中的幾種特權RING0,RING1,RING2,RING3!操作系統通常運行在RING0,應用程序通常運行在RING3。CPU如何從RING0到RING3

先看實現代碼

mov ax, SelectorTSS                             ltr ax ;                                                     push SelectorStack3push TopOfStack3   push SelectorCodeRing3  push 0retf

每一個特權等級對應一個自己的堆棧,

RING0 –- ESP0,SS0

RING1 –- ESP0,SS1

RING2 –- ESP0,SS2

CPU進行不同特權級別的跳轉時,要改變堆棧!但是CPU只有一個SS和SP,要讓跳轉后能夠恢復,就必須將每一個特權等級的堆棧信息都保存在內存中。保存各個特權堆棧的內存有一個專門的結構TSS,該結構的首地址應該被保存到CPU的任務寄存器(Task Register)。

retf 相當于一下匯編pop ippop cspop sppop ss

執行完retf之后CPU的下一個執行的指令cs:ip 就成了 SelectorCodeRing3:0 實際上就表示執行RING3的代碼段的第一條指令


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁蒗| 桃园县| 嘉义市| 汝州市| 五华县| 阿拉善盟| 宜良县| 阿拉善盟| 忻城县| 盐池县| 西青区| 孟连| 中江县| 舒城县| 芦山县| 遂川县| 新疆| 昌江| 从江县| 新丰县| 定陶县| 米易县| 大宁县| 新巴尔虎右旗| 长沙市| 石台县| 成安县| 内江市| 怀集县| 罗定市| 多伦县| 同江市| 东乡族自治县| 尉犁县| 陆良县| 玉门市| 喀喇| 武宣县| 呼和浩特市| 云和县| 台南县|