<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                在進入保護模式之前,我們先要學習一些基礎知識。今天我們看一下全局描述符表(Global Descriptor Table, 簡稱GDT)。 同實模式一樣,在保護模式下,對內存的訪問仍然使用段地址加偏移地址。但是,在保護模式下,在每個段能夠訪問之前,必須先登記。這就好比像C語言中,“對變量的使用必須先定義”一樣。 每個段在能夠使用之前,都要為這個段建立一個描述符。每個描述符占8個字節,這些描述符集中存放在內存的某個區域,一個挨著一個,就構成了一張“表”。 80x86中有兩種描述符表: - 全局描述符表(Global Descriptor Table, 簡稱GDT) - 局部描述符表(Local Descriptor Table,簡稱LDT) LDT我們以后再說,今天的重點是GDT. 在進入保護模式之前,必須要定義GDT,也就是說,我們要在內存中構建出一張表。 需要說明的是:在整個系統中,全局描述符表GDT只有一張(一個處理器對應一個GDT);GDT可以被放在內存的任何位置,但CPU必須知道GDT的入口。 你也許會問:CPU如何知道GDT的入口呢?別擔心,在處理器內部,有一個48位的寄存器,名叫GDTR,也就是全局描述符表寄存器。其結構如下圖: ? [![GDTR](https://box.kancloud.cn/2016-02-29_56d3a8fbd2ada.jpg "GDTR")](http://img.blog.csdn.net/20160109121106894) ? 該寄存器分為2部分: - 32位的線性基地址:GDT在內存中的起始線性地址(我們還沒有涉及到分頁,所以這里的線性地址等同于物理地址,下同,以后同); - 16位的表界限:在數值上等于表的大小(總字節數)減去1; 注意:在處理器剛上電的時候,基地址默認為0,表界限默認為0xFFFF; 在保護模式初始化過程中,必須給GDTR加載一個新值。 因為表界限是16位的,最大值是0xFFFF,也就是十進制的65535,那么表的大小就是65535+1=65536.又因為一個描述符占用8個字節,所以65536字節相當于8192個描述符(65536/8=8192).故理論上最多可以定義8192個描述符。實際上,不一定這么多,具體多少根據需要而定。 理論上,GDT可以放在內存中的任何地方。但是,我們必須在進入保護模式之前就定義GDT(不然就來不及了),所以GDT一般都定義在1MB以下的內存范圍中。當然,允許在進入保護模式后換個位置重新定義GDT。
                  <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>

                              哎呀哎呀视频在线观看