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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

段选择符和段寄存器

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 段选择符和段寄存器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
80x86使用了一種稱為段(Segment)的尋址技術。這種尋址技術把內存空間分成一個或多個稱為段的線性區域,從而對內存中一個數據對象的尋址就需要使用一個段的起始地址(即段地址)和一個段內偏移地址兩部分構成。段地址部分使用16位的段選擇符指定,其中14位可以選擇214即16384個段。段內偏移地址部分使用32位的值來指定,因此段內地址可以是0~4GB。即一個段的最大長度可達4GB。程序中由16位的段和32位的偏移構成的48位地址或長指針稱為一個邏輯地址(虛擬地址)。它唯一確定了一個數據對象的段地址和段內偏移地址。而僅由32位偏移地址或指針指定的地址是基于當前段的對象地址。

? ? 8086中有4個16位的段寄存器:CS、DS、SS、ES,分別用于存放可執行代碼的代碼段、數據段、堆棧段和其他段的基地址。

? ? 80X86為段部分提供了6個存放段選擇符的段寄存器:CS、DS、ES、SS、FS和GS,但是,這些段寄存器中存放的不再是某個段的基地址,而是某個段的選擇符(Selector)。因為16位的寄存器無法存放32位的段基地址,段基地址只好存放在一個叫做描述符表(Descriptor)的表中。因此,在80X86中,我們把段寄存器叫做選擇符。

其中CS總是用于尋址代碼段,而堆棧段則專門使用SS段寄存器。

在任何指定時刻由CS尋址的斷稱為當前代碼段,此時EIP寄存其中包含了當前代碼段內下一條要執行指令的段內偏移地址,因此要執行指令的地址可表示成CS:[EIP]。

由段寄存器SS尋址的段稱為當前堆棧段,棧頂由ESP寄存器內容指定,因此堆棧頂處地址是SS:[ESP]。

另外4個段寄存器是通用段寄存器,當指令中沒有指定所操作數據的段時,那么DS將是默認的數據段寄存器。


以下來自對選擇符和描述符的介紹:http://www.kerneltravel.net/kernel-book/第二章%20Linux運行的硬件基礎/2.3.5.htm

在實模式下,段寄存器存儲的是真實的段地址,在保護模式下,16位的段寄存器無法放下32位的段地址,因此,它們被稱為選擇符,即段寄存器的作用是用來選擇描述符。選擇符的結構如圖2.16所示:? ? ? ? ? ? ??

???????????圖?2.16選擇符的結構(Segment Selector)

可以看出,選擇符有三個域:第15~3位這13位是索引域,表示的數據為0~8129,用于指向全局描述符表中相應的描述符。第二位為選擇域,如果TI=1,就從局部描述符表中選擇相應的描述符,如果TI=0,就從全局描述符表中選擇描述符。第1、0位是特權級,表示選擇符的特權級,被稱為請求者特權級RPL(Requestor Privilege Level)。只有請求者特權級RPL高于(數字低于)或等于相應的描述符特權級DPL,描述符才能被存取,這就可以實現一定程度的保護。

我們知道,實模式下是直接在段寄存器中放置段基地址,現在則是通過它來存取相應的描述符來獲得段基地址和其它信息,這樣以來,存取速度會不會變慢呢?為了解決這個問題,386的每一個段選擇符都有一個程序員不可見(也就是說程序員不能直接操縱)的88位寬的段描述符高速緩沖寄存器與之對應。無論什么時候改變了段寄存器的內容,只要特權級合理,描述符表中的相應的8字節描述符就會自動從描述符表中取出來,裝入高速緩沖寄存器中(還有24位其他內容)。一旦裝入,以后對那個段的訪問就都使用高速緩沖寄存器的描述符信息,而不會再重新從表中去取,這就大大加快了執行的時間,如圖2.17所示。

圖?2.17?段描述符高速緩沖寄存器的作用

由于段描述符高速緩沖寄存器的內容只有在重新設置選擇符時才被重新裝入,所以,當你修改了選擇符所選擇的描述符后,必須對相應的選擇符重新裝入,這樣,88位描述符高速緩沖寄存器的內容才會發生變化。無論如何,當選擇符的值改變時,處理器自動裝載不可見部分。

下面講一下在沒有分頁操作時,尋址一個存儲器操作數的步驟:

1.?在段選擇符中裝入16位數,同時給出32位地址偏移量(比如在ESI、EDI中等等)

2.?根據段選擇符中的索引值、TI及RPL值,再根據相應描述符表寄存器中的段地址和段界限,進行一系列合法性檢查(如特權級檢查、界限檢查),該段無問題,就取出相應的描述符放入段描述符高速緩沖寄存器中。

段描述符(Segment Descriptor)通用格式如下圖:

3.?將描述符中的32位段基地址和放在ESI、EDI等中的32位有效地址相加,就形成了32位物理地址。

注意:在保護模式下,32位段基地址不必向左移4位,而是直接和偏移量相加形成32位物理地址(只要不溢出)。這樣做的好處是:段不必再定位在被16整除的地址上,也不必左移4位再相加。

尋址過程如圖?2.18所示。


總結

以上是生活随笔為你收集整理的段选择符和段寄存器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 伊人久久狼人 | 超碰自拍| 99蜜桃臀久久久欧美精品网站 | 久久久久久久久国产 | 成年人网站免费在线观看 | a亚洲天堂| 蜜桃99视频一区二区三区 | 极品尤物魔鬼身材啪啪仙踪林 | 四虎影视免费永久大全 | 国产成人精品自拍 | 日韩黄页网站 | 日本色网址 | 中文字幕第十二页 | 天天干天天干天天 | 午夜一区二区三区在线观看 | 欧美色图亚洲自拍 | 亚洲精品一区二区三区区别 | 日产电影一区二区三区 | 久久91久久 | 91精品久久久久久粉嫩 | 欧美黑吊大战白妞欧美大片 | 国产精品伦理一区二区 | 91视频入口 | 老太太av | 国产亚洲精品成人av久久ww | 伊人日本 | 美女喷液视频 | 国产三级按摩推拿按摩 | 欧美第一夜 | 日韩精品一二区 | 国产精品麻豆成人av电影艾秋 | 欧美色图12p| 亚洲精品无 | 91精品国产乱码久久久张津瑜 | 蜜桃av噜噜| 日韩精品在线视频免费观看 | 一区二区三区在线播放视频 | 国产福利在线 | 蜜桃免费在线视频 | 国产九九精品 | 无限资源日本好片 | 91尤物在线 | 国产精品久久久久久无人区 | 日本在线看片 | 五月天av网 | 久久永久免费 | 亚洲一区综合 | 久久久久久网址 | 户外少妇对白啪啪野战 | 久久男人精品 | 午夜久久久久久久久 | 国产高清在线视频观看 | 黄色免费看网站 | 欧美你懂得 | 日韩免费高清 | 无码人妻aⅴ一区二区三区日本 | 在线看成人 | 精品无码av一区二区三区四区 | 毛片免| 啪啪综合网 | a级片视频网站 | 国产涩涩| 人妻少妇偷人精品无码 | 69pao| www.成人国产 | 日韩av麻豆 | 可以免费看av的网址 | 国产视频在线一区二区 | 久久99久久久久 | 好大好爽视频 | 黄色免费网站视频 | 久久在线看 | 青青成人网 | 国产精品大屁股白浆一区 | 91视频久久久久 | 女人免费视频 | 女色综合| 日韩亚洲在线 | 黄色短视频在线播放 | 香蕉色网| 97在线公开视频 | 成人毛片视频免费看 | 成人免费在线网址 | 韩国一区二区三区四区 | 禁断介护av | av导航在线 | 欧美日韩国产免费一区二区三区 | 日产精品久久久 | 日本wwwxxx | 新国产视频 | 岳狂躁岳丰满少妇大叫 | 台湾综合色 | 免费啪视频 | 中文字幕a√ | 亚洲综合色在线观看 | 丰满少妇xoxoxo视频 | 日韩va亚洲va欧美va久久 | 久久系列 | 久久六六|