亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲(chóng)蟲(chóng)首頁(yè)| 資源下載| 資源專輯| 精品軟件
登錄| 注冊(cè)

開(kāi)(kāi)關(guān)(guān)狀態(tài)(tài)

  • 8 KEYS 高抗干擾并防水+省電電容式觸摸按鍵VK3708BM SOP16

    一.產(chǎn)品描述   提供8個(gè)觸摸感應(yīng)按鍵,二進(jìn)制(BCD)編碼輸出,具有一個(gè)按鍵承認(rèn)輸出的顯示,按鍵後的資料會(huì)維持到下次按鍵,可先判斷按鍵承認(rèn)的狀態(tài)。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對(duì)於防水和抗干擾方面有很優(yōu)異的表現(xiàn)!   二.產(chǎn)品特色   1.工作電壓範(fàn)圍:3.1V – 5.5V   2. 工作電流: 3mA (正常模式);15 uA (休眠模式) @5V   3. 8 個(gè)觸摸感應(yīng)按鍵   4.持續(xù)無(wú)按鍵 4 秒,進(jìn)入休眠模式   5. 提供二進(jìn)制(BCD)編碼直接輸出介面(上電 D2~D0/111)   6. 按鍵後離開(kāi),輸出狀態(tài)會(huì)維持到下次按鍵才會(huì)改變。   7. 提供按鍵承認(rèn)有效輸出,當(dāng)有按鍵時(shí)輸出低電平,無(wú)按鍵為高電平。   8. 可以經(jīng)由調(diào)整 CAP 腳的外接電容,調(diào)整靈敏度,電容越大靈敏度越高   9. 具有防水及水漫成片水珠覆蓋在觸摸按鍵面板,按鍵仍可有效判別   10. 內(nèi)建 LDO 增加電源的抗干擾能力   三.產(chǎn)品應(yīng)用   各種大小家電,娛樂(lè)產(chǎn)品   四.功能描述   1.VK3708BM 於手指按壓觸摸盤,在 60ms 內(nèi)輸出對(duì)應(yīng)按鍵的狀態(tài)。   2.單鍵優(yōu)先判斷輸出方式處理, 如果 K1 已經(jīng)承認(rèn)了, 需要等 K1 放開(kāi)後, 其他按鍵才能再被承認(rèn),同時(shí)間只有一個(gè)按鍵狀態(tài)會(huì)被輸出。   3.具有防呆措施, 若是按鍵有效輸出連續(xù)超過(guò) 10 秒, 就會(huì)做復(fù)位。   4.環(huán)境調(diào)適功能,可隨環(huán)境的溫濕度變化調(diào)整參考值,確保按鍵判斷工作正常。   5.可分辨水與手指的差異,對(duì)水漫與水珠覆蓋按鍵觸摸盤,仍可正確判斷按鍵動(dòng)作。但水不可於按鍵觸摸盤上形成“水柱”,若如此則如同手按鍵一般,會(huì)有按鍵承認(rèn)輸出。   6.內(nèi)建 LDO 及抗電源雜訊的處理程序,對(duì)電源漣波的干擾有很好的耐受能力。   7.不使用的按鍵請(qǐng)接地,避免太過(guò)靈敏而產(chǎn)生誤動(dòng)。 聯(lián)系人:許碩          QQ:191 888 5898   聯(lián)系電話:188 9858 2398(微信)

    標(biāo)簽: KEYS 3708 SOP 16 BM VK 抗干擾 防水 省電

    上傳時(shí)間: 2019-08-08

    上傳用戶:szqxw1688

  • 多元散射校正MSC

    function [R,k,b] = msc(A) % 多元散射校正 % 輸入待處理矩陣,通過(guò)多元散射校正,求得校正后的矩陣 %% 獲得矩陣行列數(shù) [m,n] = size(A); %% 求平均光譜 M = mean(A,2); %% 利用最小二乘法求每一列的斜率k和截距b for i = 1:n a = polyfit(M,A(:,i),1); if i == 1 k = a(1); b = a(2); else k = [k,a(1)]; b = [b,a(2)]; end end %% 求得結(jié)果 for i = 1:n Ai = (A(:,i)-b(i))/k(i); if i == 1 R = Ai; else R = [R,Ai]; end end

    標(biāo)簽: MSC 多元 散射 校正

    上傳時(shí)間: 2020-03-12

    上傳用戶:15275387185

  • 數(shù)組子系統(tǒng)

    #include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t請(qǐng)輸入稀疏矩陣的行數(shù),列數(shù)和非零元素個(gè)數(shù)(用逗號(hào)隔開(kāi)):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t輸入非零元素值(格式:行號(hào),列號(hào),值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t對(duì)角線元素的和::%d\n",p->v); else printf("\n\t\t對(duì)角線元素的和為::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t      稀疏矩陣的三元組系統(tǒng)       "); printf("\n\t\t*********************************"); printf("\n\t\t      1------------創(chuàng)建          "); printf("\n\t\t      2------------顯示          "); printf("\n\t\t      3------------求對(duì)角線元素和"); printf("\n\t\t      4------------返回          "); printf("\n\t\t*********************************"); printf("\n\t\t請(qǐng)選擇菜單號(hào)(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t輸入錯(cuò)誤!請(qǐng)重新輸入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }

    標(biāo)簽: 數(shù)組 子系統(tǒng)

    上傳時(shí)間: 2020-06-11

    上傳用戶:ccccy

  • 智能家居的標(biāo)準(zhǔn)與協(xié)議

    家 庭 總 線 是 智 能 家 居 實(shí) 現(xiàn) 的 重 要 基 礎(chǔ) . 是 住 宅 內(nèi) 部 的 神 經(jīng) 系 統(tǒng) . 其 主 要 作 用 是 連 接 家 中的各 種 電子 、 電氣 設(shè) 備 . 負(fù)責(zé) 將 家 庭 內(nèi) 的 各 種 通 信 設(shè) 備 ( 包 括 安 保 、 電話 、 家 電 、 視 聽(tīng) 設(shè) 備 等 )連 接 在 一 起 . 形 成 一 個(gè) 完 整 的家 庭 網(wǎng) 絡(luò) 。 日 本 是 較 早 推 動(dòng) 智 能 家 居 發(fā) 展 的 國(guó) 家 之 一 , 它 較 早 地 提 出 了 家庭 總線 系統(tǒng) (H O m e B u S S Y S t e m , 簡(jiǎn)稱H B S ) 的概念 . 成 立 了 家庭 總線 (H B S )研 究會(huì) . 并 在 郵政省和 通 產(chǎn) 省 的指 導(dǎo) 下 組 成 了H B S 標(biāo) 準(zhǔn)委 員 會(huì) , 制定 了 日 本 的H B s 標(biāo) 準(zhǔn) 。 按 照 該 標(biāo) 準(zhǔn) , H B S 系統(tǒng) 由一 條 同 軸 電 纜 和 4 對(duì) 雙 絞 線 構(gòu) 成 , 前 者 用 于 傳 輸 圖 像 信 息 . 后者 用 于 傳輸語(yǔ) 音 、 數(shù)據(jù)及 控制信 號(hào) 。 各 類家用 設(shè) 備 與 電氣 設(shè) 備 均 按 一 定 方式 與H B S 相 連 , 這 些 電氣設(shè) 備 既 可 以在 室 內(nèi)進(jìn) 行 控制 . 也 可 在異地 通 過(guò) 電話進(jìn)行 遙 控 。 為適 應(yīng) 大型 居住社 區(qū) 的需 要 , 1 9 8 8 年年初 , 日 本住 宅信息 化推進(jìn)協(xié)會(huì) 又 推 出 了 超級(jí) 家庭總 線 (S u p e r H0 m e B u s S y s t e m , 簡(jiǎn) 稱S - H B S ) , 它適 用 于 更 大 的范 圍 . 因 為一 個(gè)S - H B s 系統(tǒng)可 掛接 數(shù)千個(gè)家庭 內(nèi)部 網(wǎng) 。 家庭 智能化要 求諸 多家 電和 網(wǎng)絡(luò)能夠彼此 相容 . 總線協(xié) 議是 其精髓 所 在 , 只 有接 E l 暢通 , 家 電才能 “ 聽(tīng)懂 ” 人 發(fā) 出的指令 , 因此 總線標(biāo)準(zhǔn) 的物理 層 接 口 形 式 是 智能 家居 亟 待解決 的重 要 問(wèn)題 之 一 。 目前 比 較成型 的總線標(biāo) 準(zhǔn) 協(xié) 議 主 要 是 美 國(guó)公 司 提 出 的 , 包 括E c h e l o n 公 司 I)~L o n W o r k s 協(xié)議 、 電子 工 業(yè) 協(xié) 會(huì) (E I A ) 的C E 總線協(xié) 議 (C EB u S ) 、 S m a r t Ho u s e L P 的智 能屋 協(xié) 議 和×一 1 0 公 司 的X 一 1 0 協(xié) 議等。 這 些 協(xié) 議 各 有 優(yōu) 劣 。

    標(biāo)簽: 智能家居

    上傳時(shí)間: 2022-03-11

    上傳用戶:

  • Verilog的135個(gè)經(jīng)典設(shè)計(jì) 實(shí)例

    【例3.1]4位全加器module adder 4(cout,sum i na,i nb,cin);output[3:0]sum output cout;input[3:0]i na,i nb;input cin;assign(cout,suml=i na +i nb+ci n;endmodule【例3.2]4位計(jì)數(shù)器module count 4(out,reset,clk);output[3:0]out;input reset,cl k;regl 3:01 out;always@posedge clk)

    標(biāo)簽: verilog

    上傳時(shí)間: 2022-06-16

    上傳用戶:canderile

  • Windows CE系列中文教材:WinCE程序設(shè)計(jì)

    ·作  者: [美]Douglas Boling 著出 版 社: 北京大學(xué)出版社出版時(shí)間: 1999-8-1字  數(shù): 1040000版  次: 1頁(yè)  數(shù): 746印刷時(shí)間: 1999/08/01開(kāi)  本:印  次:紙  張: 膠版紙I S B N : 9787301041864  內(nèi)容簡(jiǎn)介我是在1996年秋MicrosoftWindows CE發(fā)行之前開(kāi)始了解這個(gè)軟件的。作為

    標(biāo)簽: Windows WinCE nbsp CE

    上傳時(shí)間: 2013-07-09

    上傳用戶:cc111

  • 嵌入式ARM系統(tǒng)原理與實(shí)例開(kāi)發(fā)

    ·作  者: 楊宗德 編著出 版 社: 北京大學(xué)出版社出版時(shí)間: 2007-9-1 字  數(shù): 351000 版  次: 1 頁(yè)  數(shù): 233 印刷時(shí)間: 2007/09/01 紙  張: 膠版紙 I S B N : 9787301125304 包  裝: 平裝 內(nèi)容簡(jiǎn)介本書(shū)是一本介紹ARM處理器原理與底層程序開(kāi)發(fā)實(shí)例的教材,涉及嵌入式系統(tǒng)結(jié)構(gòu)、嵌入式處理器及操作系統(tǒng)基本概念、ARM處理器原理及應(yīng)

    標(biāo)簽: ARM 嵌入式 系統(tǒng)原理

    上傳時(shí)間: 2013-06-19

    上傳用戶:410805624

  • 電動(dòng)機(jī)控制電路選用與258實(shí)例

    ·作    者: 袁任光 I S B N: 7111144716 頁(yè)    數(shù): 676 開(kāi)    本: 32開(kāi) 重    量: 460克 封面形式: 簡(jiǎn)裝本 出 版 社: 機(jī)械工業(yè)出版社   本社特價(jià)書(shū)  出版日期: 2004-7-1 定    價(jià): 30元

    標(biāo)簽: 258 電動(dòng)機(jī) 控制電路

    上傳時(shí)間: 2013-07-05

    上傳用戶:LouieWu

  • 變頻器原理與應(yīng)用教程

    ·作    者: 三菱電機(jī)株式會(huì)社 I S B N: 7118019917 頁(yè)    數(shù): 176 開(kāi)    本: 大16開(kāi) 封面形式: 簡(jiǎn)裝本 出 版 社: 國(guó)防工業(yè)出版社   本社特價(jià)書(shū)  出版日期: 2001-7-1 定    價(jià): 40元 變頻器原理與應(yīng)用教程 內(nèi)容簡(jiǎn)介本書(shū)

    標(biāo)簽: 變頻器原理 應(yīng)用教程

    上傳時(shí)間: 2013-08-01

    上傳用戶:aappkkee

  • 匯編+保護(hù)模式+教程

    九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級(jí)IPOL和I/O許可位圖的方法來(lái)控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(jí)(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問(wèn)I/O空間中所有地址的最外層特權(quán)級(jí)。IOPL的值在如下圖所示的標(biāo)志寄存器中。 標(biāo)  志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規(guī)定了I/O空間中的哪些地址可以由在任何特權(quán)級(jí)執(zhí)行的程序所訪問(wèn)。I/O許可位圖在任務(wù)狀態(tài)段TSS中。 I/O敏感指令 指令 功能 保護(hù)方式下的執(zhí)行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設(shè)置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數(shù)據(jù) CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫(xiě)數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫(xiě)字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時(shí)才可以執(zhí)行,所以把它們稱為I/O敏感指令。從表中可見(jiàn),當(dāng)前特權(quán)級(jí)不在I/O特權(quán)級(jí)外層時(shí),可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級(jí)在I/O特權(quán)級(jí)外層時(shí),執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問(wèn)的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級(jí)3執(zhí)行的應(yīng)用程序要么可訪問(wèn)所有I/O地址,要么不可訪問(wèn)所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問(wèn)部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問(wèn)另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問(wèn)I/O地址時(shí)發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨(dú)享設(shè)備時(shí)發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對(duì)應(yīng)一個(gè)I/O地址,位串的第0位對(duì)應(yīng)I/O地址0,位串的第n位對(duì)應(yīng)I/O地址n。如果位串中的第位為0,那么對(duì)應(yīng)的I/O地址m可以由在任何特權(quán)級(jí)執(zhí)行的程序訪問(wèn);否則對(duì)應(yīng)的I/O地址m只能由在IOPL特權(quán)級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)。如果在I/O外層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)位串中位值為1的位所對(duì)應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問(wèn)I/O地址的情況下,當(dāng)一條I/O指令涉及多個(gè)I/O地址時(shí),只有這多個(gè)I/O地址所對(duì)應(yīng)的I/O許可位圖中的位都為0時(shí),該I/O指令才能被正常執(zhí)行,如果對(duì)應(yīng)位中任一位為1,就會(huì)引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長(zhǎng)度是64K個(gè)位,即位圖的有效部分最大為8K字節(jié)。一個(gè)任務(wù)實(shí)際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個(gè)數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲(chǔ)在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲(chǔ),所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見(jiàn),TSS內(nèi)偏移66H的字確定I/O許可位圖的開(kāi)始偏移。由于I/O許可位圖最長(zhǎng)可達(dá)8K字節(jié),所以開(kāi)始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門SS中前104字節(jié)為TSS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問(wèn)許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開(kāi)始偏移;(3)計(jì)算I/O地址對(duì)應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對(duì)應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開(kāi)始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對(duì)應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過(guò),則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問(wèn)。設(shè)某一任務(wù)的TSS段如下: TSSSEG                  SEGMENT PARA USE16                        TSS     <>             ;TSS低端固定格式部分                        DB      8 DUP(0)       ;對(duì)應(yīng)I/O端口00H—3FH                        DB      10000000B      ;對(duì)應(yīng)I/O端口40H—47H                        DB      01100000B      ;對(duì)用I/O端口48H—4FH                        DB      8182 DUP(0ffH) ;對(duì)應(yīng)I/O端口50H—0FFFFH                        DB      0FFH           ;位圖結(jié)束字節(jié)TSSLen                  =       $TSSSEG                  ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會(huì)引起通用保護(hù)異常:                         in      al,21h  ;(1)正常執(zhí)行                        in      al,47h  ;(2)引起異常                        out     20h,al  ;(3)正常實(shí)行                        out     4eh,al  ;(4)引起異常                        in      al,20h  ;(5)正常執(zhí)行                        out     20h,eax ;(6)正常執(zhí)行                        out     4ch,ax  ;(7)引起異常                        in      ax,46h  ;(8)引起異常                        in      eax,42h ;(9)正常執(zhí)行 由上述I/O許可檢查的細(xì)節(jié)可見(jiàn),不論是否必要,當(dāng)進(jìn)行許可位檢查時(shí),80386總是從I/O許可位圖中讀取兩個(gè)字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個(gè)字節(jié)。例如,上面的第(8)條指令要對(duì)I/O位圖中的兩個(gè)位進(jìn)行檢查,其低位是某個(gè)字節(jié)的最高位,高位是下一個(gè)字節(jié)的最低位??梢?jiàn)即使只要檢查兩個(gè)位,也可能需要讀取兩個(gè)字節(jié)。另一方面,最多檢查四個(gè)連續(xù)的位,即最多也只需讀取兩個(gè)字節(jié)。所以每次要讀取兩個(gè)字節(jié)。這也是在判別是否越界時(shí)再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時(shí)產(chǎn)生越界,必須在I/O許可位圖的最后填加一個(gè)全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個(gè)位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開(kāi)始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對(duì)較小I/O地址訪問(wèn)的許可檢查根據(jù)位圖進(jìn)行,而對(duì)較大I/O地址訪問(wèn)的許可檢查總被認(rèn)為不可訪問(wèn)而引起通用保護(hù)故障。因?yàn)檫@時(shí)會(huì)發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個(gè)特點(diǎn),可大大節(jié)約TSS中I/O許可位圖占用的存儲(chǔ)單元,也就大大減小了TSS段的長(zhǎng)度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲(chǔ)在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實(shí)現(xiàn)輸入輸出保護(hù)。類似地,對(duì)EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對(duì)待是無(wú)意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對(duì)EFLAGS中的這三個(gè)字段的處理比較特殊,只有在較高特權(quán)級(jí)執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級(jí)下對(duì)這三個(gè)字段的處理情況。 不同特權(quán)級(jí)對(duì)標(biāo)志寄存器特殊字段的處理 特權(quán)級(jí) VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0  不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見(jiàn),只有在特權(quán)級(jí)0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對(duì)于IOPL同級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級(jí)不滿足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時(shí),如果試圖修改這些字段中的任何一個(gè)字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實(shí)例(實(shí)例九)下面給出一個(gè)用于演示輸入輸出保護(hù)的實(shí)例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過(guò)任務(wù)門調(diào)用任務(wù),實(shí)現(xiàn)任務(wù)嵌套。 1.演示步驟實(shí)例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實(shí)模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時(shí)代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級(jí)是0;(4)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)4。測(cè)試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。

    標(biāo)簽: 匯編 保護(hù)模式 教程

    上傳時(shí)間: 2013-12-11

    上傳用戶:nunnzhy

主站蜘蛛池模板: 乐平市| 惠水县| 卫辉市| 门头沟区| 黄梅县| 衡阳市| 晋江市| 陇南市| 梅河口市| 扶绥县| 庆阳市| 湖口县| 邓州市| 乌兰县| 银川市| 大同县| 兰坪| 鄱阳县| 滦南县| 灵川县| 东莞市| 白河县| 香港 | 克什克腾旗| 合水县| 淮阳县| 镇远县| 应用必备| 汉川市| 丹凤县| 平南县| 黑山县| 澳门| 华阴市| 卫辉市| 东丽区| 东辽县| 溆浦县| 西盟| 伊川县| 灌南县|