日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

保护模式及其编程——8086系统寄存器和系统指令

發布時間:2025/6/15 windows 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 保护模式及其编程——8086系统寄存器和系统指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要:為了協助處理器完成初始化和控制系統操作,<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">80x86</span></span>提供了一個標志寄存器和幾個系統寄存器。<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">Eflags</span></span>用于控制任務切換、中斷處理、指令跟蹤和權限訪問。系統寄存器用于內存管理和控制處理器操作。<h1><a target=_blank name="t0"></a><span style="font-size:18px;color:#ff0000;"><span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">1.</span></span>標志寄存器</span></h1> <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">32b,</span></span>含有系統標志和通用標志,以及保留位等等,具體可以參考相關資料,下面簡介系統標志位 <img src="https://img-blog.csdn.net/20140218234128812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHJvY2hpbHVzZXM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">1) TF:b8,</span></span>跟蹤標志 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">2</span></span>)<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">IOPL</span></span>:<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">b13-b12</span></span>,<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">IO</span></span>特權級 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">3</span></span>)<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">NT</span></span>:<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">b14</span></span>,嵌套任務標志(<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">nested task</span></span>) <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">4</span></span>)<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">RF</span></span>:<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">b16</span></span>,恢復標志(<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">resume flag</span></span>) <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">5</span></span>)<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">VM</span></span>:<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">b17</span></span>,虛擬<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">8086</span></span>模式<h1><a target=_blank name="t1"></a><span style="font-size:18px;color:#ff0000;"><span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">2.</span></span>內存管理寄存器</span></h1> <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">GDTR</span></span>、<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDTR</span></span>、<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">IDTR</span></span>、<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">TR,</span></span>用于制定內存分段管理所用的系統表的基地址,其中<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">TR</span></span>用于尋址一個特殊的任務狀態段,<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">TSS</span></span>中包含中當前執行任務的重要信息。圖<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">1 </span></span>內存管理寄存器<img src="https://img-blog.csdn.net/20140218233752125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHJvY2hpbHVzZXM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">GDTR</span></span>:全局描述符表寄存器 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">IDTR</span></span>:中斷描述符表寄存器,使用<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LIDT&&SIDT</span></span>存取 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDTR</span></span>:存放<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">32</span></span>位線性地址、<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">16</span></span>位限長和描述符屬性。指令<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LLDT</span></span>和<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">SLDT</span></span>用于保存<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDTR</span></span>寄存器的段描述符部分。當使用<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDTR</span></span>指令把含有<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDT</span></span>標段的選擇符加載進<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDTR</span></span>時,對應段基地址、限長、屬性自動加載到<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDTR</span></span>中。 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">TR</span></span>:任務寄存器,通用<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDR</span></span>和<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">STR</span></span>存取,存取操作類似<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">LDTR</span></span>。<h1><a target=_blank name="t2"></a><span style="font-size:18px;color:#ff0000;"><span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">3.</span></span>控制寄存器</span></h1> 用于控制和確定處理器的操作模式和當前執行任務的特性。 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">cr0</span></span>:控制處理器操作模式和狀態 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">cr1</span></span>:保留 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">cr2</span></span>:含有導致頁錯誤的線性地址 <span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">cr3</span></span>:頁目錄表物理內存基地址<h2><a target=_blank name="t3"></a><span style="font-size:18px;color:#ff0000;"><span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">3.1 cr0</span></span>中的保護控制位</span></h2><span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">從某種程度長說,cr0是分段機制和分頁機制中最重要的寄存器:</span></span><span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">對于分段機制:cr0</span></span>中最重要的是<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">PE</span></span>(<span style="font-family:DejaVu Sans Mono,monospace;"><span lang="en-US">b0</span></span>)改變的時候需要特別小心。<span style="font-family:Arial,Helvetica,sans-serif;">修改了</span><span style="font-family:'DejaVu Sans Mono',monospace;"><span lang="en-US">PE</span></span><span style="font-family:Arial,Helvetica,sans-serif;">之后,必須立即使用一條跳轉指令,以刷新處理器執行管道中已經獲得的不同模式下的任何指令。在設置</span><span style="font-family:'DejaVu Sans Mono',monospace;"><span lang="en-US">PE</span></span><span style="font-family:Arial,Helvetica,sans-serif;">位之前,程序必須初始化基本系統段和控制寄存器。</span><span style="font-family:Arial,Helvetica,sans-serif;"> </span><pre name="code" class="cjk">對于分段機制<span style="font-family:'DejaVu Sans Mono',monospace;"><span lang="en-US">PG</span></span>(<span style="font-family:'DejaVu Sans Mono',monospace;"><span lang="en-US">b31</span></span>)位,<span style="font-family:Arial,Helvetica,sans-serif;">只有當執行程序至少有部分代碼和數據在線性地址空間和物理地址空間中有相同地址的時候,才能改變</span><span style="font-family:'DejaVu Sans Mono',monospace;"><span lang="en-US">PG</span></span><span style="font-family:Arial,Helvetica,sans-serif;">。所以,這一部分代碼在分頁和沒有分頁的世界之間起到了橋梁作用。開啟分頁之前,必須先栓新</span><span style="font-family:'DejaVu Sans Mono',monospace;"><span lang="en-US">TLB</span></span><span style="font-family:Arial,Helvetica,sans-serif;">。 </span><span style="font-family:Arial,Helvetica,sans-serif;"> </span><span style="font-family:Arial,Helvetica,sans-serif;">開啟的時候,必須先開啟分段,然后開啟分頁。</span><span style="font-family:Arial,Helvetica,sans-serif;"> </span><span style="font-family:Arial,Helvetica,sans-serif;">關閉的時候,要使用相反的順序,不然,就會出現如下的提示信息:check_CR0(0xe0000010): attempt to set CR0.PG with CR0.PE cleared?</span>

3.2 cr2cr3

cr2cr3用于分頁機制,cr3也被稱為PDBR。因為頁目錄表頁面是頁對齊的,所以該寄存器只有高20b有效(4k占用12b),低12b保留給更高級處理器使用。往cr3加載一個值的時候,低12b必須是0.使用mov指令加載cr3,會讓TLB失效。

總結

以上是生活随笔為你收集整理的保护模式及其编程——8086系统寄存器和系统指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎成人精品在永久免费 | 日韩精品一区二区三区在线 | 女警白嫩翘臀呻吟迎合 | 99国内揄拍国内精品人妻免费 | 欧美日韩视频免费 | 国产一二三在线观看 | 青青草成人免费视频 | 不用播放器看av | 国外亚洲成av人片在线观看 | 永久免费视频网站直接看 | 韩国美女视频在线观看18 | 国产福利精品一区 | 久久婷婷一区二区 | 尹人在线视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 香蕉久久精品日日躁夜夜躁 | 国产精品一品二区三区的使用体验 | 色婷婷av一区二区 | 懂爱av| 色先锋资源网 | 久久久久久久久久久久久国产 | 瑟瑟综合| 毛片在线免费播放 | 91亚洲视频在线观看 | 国产三级国产精品国产专区50 | 天天干天天干 | 青青草伊人久久 | 刘亦菲毛片| 国产影视一区二区 | av九九九 | 亚洲一区二区三区免费观看 | 99久久久精品免费观看国产 | 麻豆久久久久久久 | 久久伊人五月天 | 中文字幕蜜臀 | 日韩在线三级 | 免费黄网站在线 | 污片在线免费看 | 欧美www视频 | 国产精品8| 色婷婷色综合 | 激情狠狠| 国产三级大片 | 国产欧美久久久久久 | 欧美在线播放一区 | 亚洲成av人影院 | 伊人一二三 | 亚洲作爱视频 | 玉丸(双性调教) | 国产女人高潮的av毛片 | 女人被狂躁c到高潮 | 国产福利一区二区视频 | 在线观看毛片av | 一区二区三区黄 | 免费看三级黄色片 | 午夜精产品一区二区在线观看的 | 亚洲精品色 | 91网页版 | 精品国产高清在线观看 | 黄色国产大片 | 丰满雪白极品少妇流白浆 | 国产精品熟妇一区二区三区四区 | 男人桶进美女尿囗 | 91在线观看免费高清 | 精品欧美乱码久久久久久1区2区 | www视频在线观看免费 | 午夜在线| 在线免费观看成人 | 色欲久久久天天天综合网 | 波多野结衣中文一区 | www.四虎. | 91国产丝袜在线播放 | 九九九热| 黄频在线观看 | 综合网伊人 | 殴美毛片 | 永久免费精品影视网站 | 国产成人毛毛毛片 | 日本亚洲精品 | 国产成人aa | 久久综合88| 国产睡熟迷奷系列精品视频 | 欧美日韩国产一区二区 | 国产女人高潮毛片 | 久久人人爽爽人人爽人人片av | 国产xxxx视频 | 色就是欧美 | 波多野结衣日韩 | 中文字幕国产剧情 | 在线中文字幕网站 | 伊人色区 | 乱熟女高潮一区二区在线 | 四虎成人永久免费视频 | 探花国产精品一区二区 | 麻豆私人影院 | 免费看黄色的视频 | 免费看一级视频 | 亚洲综合影视 | 视频网站在线观看18 |