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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.段描述符属性

發(fā)布時(shí)間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.段描述符属性 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

//結(jié)構(gòu)體表示:Struct Segment {Word selecter //可見部分Word Atrributes //屬性,可讀可寫可執(zhí)行 高8~23位DWORD Base //當(dāng)前段從哪開始 粉紅色部分DWORD LinIT //當(dāng)前段整個(gè)有多長 淺藍(lán)色部分 }typedef struct _KGDTENTRY // 3 elements, 0x8 bytes (sizeof) { /*0x000*/ UINT16 LimitLow; /*0x002*/ UINT16 BaseLow;//低16~31 union // 2 elements, 0x4 bytes (sizeof) { struct // 4 elements, 0x4 bytes (sizeof) { /*0x004*/ UINT8 BaseMid; /*0x005*/ UINT8 Flags1; /*0x006*/ UINT8 Flags2; /*0x007*/ UINT8 BaseHi; }Bytes; struct // 10 elements, 0x4 bytes (sizeof) { /*0x004*/ ULONG32 BaseMid : 8; // 高0~7 /*0x004*/ ULONG32 Type : 5; // 8 BitPosition /*0x004*/ ULONG32 Dpl : 2; // 13 BitPosition /*0x004*/ ULONG32 Pres : 1; // 15 BitPosition /*0x004*/ ULONG32 LimitHi : 4; // 16 BitPosition /*0x004*/ ULONG32 Sys : 1; // 20 BitPosition /*0x004*/ ULONG32 Reserved_0 : 1; // 21 BitPosition /*0x004*/ ULONG32 Default_Big : 1; // 22 BitPosition /*0x004*/ ULONG32 Granularity : 1; // 23 BitPosition /*0x004*/ ULONG32 BaseHi : 8; // 高24~31 }Bits; }HighWord; }KGDTENTRY, *PKGDTENTRY;

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------

p位:執(zhí)行匯編指令時(shí)會先檢測p位如果p為0后面的檢測都不用做了
p = 1段描述符有效
p = 0段描述符無效

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------

G位:顆粒度
藍(lán)色部分低下16位 上面4位一共20位,最大值為5個(gè)f少了12個(gè)位
G=0時(shí)前面補(bǔ)3個(gè)0 -------------000 FFFFF
G=1時(shí)后面補(bǔ)3個(gè)F -------------FFFFF FFF

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------

S位:先判斷p位緊接著s位把它分成兩大類
s=1 代碼或數(shù)據(jù)描述符
s=0系統(tǒng)段描述符

如果s=0位系統(tǒng)段,它又分成幾種類。TYPE域8~11 == 1011 b時(shí),他是一個(gè)32位TSS并且處于繁忙中(Buty)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
TYPE域:
s=1 8~11位為代碼或數(shù)據(jù)描述符,11位為0數(shù)據(jù)段,1代碼段


紅箭頭9或f才是代碼或數(shù)據(jù)描述符,藍(lán)箭頭只要大于8就是代碼段,否則位數(shù)據(jù)段

------------------------------------數(shù)據(jù)段------------------------------------
A :是否訪問過
系統(tǒng)剛啟動(dòng)的時(shí)候是沒被訪問過的沒訪問過時(shí)為A位為0,被訪問過后為1

W :是否可寫
0時(shí)他是不可寫,1可寫

E:擴(kuò)展位 0向上擴(kuò)展,1向下擴(kuò)展


向上擴(kuò)展 base-limit內(nèi)的地址是有效的,向下擴(kuò)展除了base-limit內(nèi)的地址所有的地址都是有效的

-------------------------------------代碼段-------------------------------------
A:訪問位,和數(shù)據(jù)段意思一樣

R:可讀位
0時(shí)他是不可讀,1可讀

C:一致位 c=1一致代碼段 c=0非一致代碼段

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
DB位:
情況一:對CS段的影響
DB=1采用32位尋址方式
DB=0采用16位尋址方式,
前綴為 0x67 時(shí)改變尋址方式

情況二:對SS段的影響
DB=1隱式堆棧訪問指令(如: PUSH POP CALL)使用32位堆棧指針寄存器ESP
DB=0隱式堆棧訪問指令(如: PUSH POP CALL)使用16位堆棧指針寄存器SP

情況三:向下拓展的數(shù)據(jù)段
D=1段上線為4GB
D=0段上線為64KB

總結(jié)

以上是生活随笔為你收集整理的3.段描述符属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。