<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 10.4 保護模式初始化(Software Initialization for Protected Mode) 許多保護模式所需要的初始化即可以在進入保護模式之前做,也可以在進入保護模式以后做。如果在進入保護模式以后做,那么軟件就不應該使用還沒有初始化的保護模式特性。 ### 10.4.1 中斷描述符表(Interrupt Descriptor Table) IDTR即可以在實模式也可以在保護模式加載。保護模式的中斷表和實模式的中斷表的格式是不相同的。改變到保護模式的同時也改變中斷表的格式是不可能的。所以,如果IDTR指向了一個中斷表,在某些時候表的格式是錯誤的,這種情況不可避免。在這個時候發生的中斷或異常將會導致不可預測的結果。為了防止這種不可預測性,應該把保護模式的中斷處理程放到IDT中后,才開啟中斷。 ### 10.4.2 堆棧(Stack) SS寄存器可以在保護模式加載,也可以在實模式加載。如果在實模式加載,當切換到了保護模式以后SS將繼續指向相同的線性地址基址處。 ### 10.4.3 全局描述符表(Global Descriptor Table) 在保護模式下,在任何段寄存器改變前,GDT寄存器必須指向一個有效的GDT。GDT和GDTR的初始化可以在實模式下完成。GDT(還有所有的LDT)應該要在RAM內,因為處理器將修改描述符表的已訪問位(accessed bit)。 ### 10.4.4 頁表(Page Tables) 頁表和頁目錄基址寄存器(CR3中)可以在實模式初始化,也可以在保護模式中。但是,CR0中的允許分頁位(PG位)不能在處理器未處于保護模式時設置。PG可以和PE同時設置,或者更后。當PG設置時,CR3中的PDBR應該已經過有效的初始化,指向物理內存中的有效的頁目錄。初始化子程可以使用以下的方針來何證分頁前后的地址的一致性: + 在分頁前后,當前被執行的代碼頁應該被映射到相同的物理地址。 + 當設置了PG位后,立即執行一條JMP指令。 ### 10.4.5 第一個任務(First Task) 初始化子程可以在沒有初始化任務寄存器前,在保護模式下運行一段時間。但是,當第一個任務切換發生時,以下條件必須要滿足: + 新任務必須要有一個有效的任務狀態段(TSS)。在這個TSS中的比當前任務特權級高或相等的特權級的堆棧指針必須要指向有效的堆棧區。 + 任務寄存器必須指向一個區域以保存當前任務的狀態。第一個任務切換以后,這些轉存的信息可以不需要,這片區域也可以用作別的目的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看