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

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

偏移技術(shù)

  • PCF2123 SPI實時時鐘日歷芯片簡介

    PCF2123是低功耗的CMOS實時時鐘/日歷芯片。數(shù)據(jù)通過SPI總線傳輸,最大總線速率高達(dá)6.25Mbit/s。報警和定時器功能產(chǎn)生一個喚醒信號,喚醒中斷管腳。偏移寄存器可以實現(xiàn)時鐘的校準(zhǔn)。

    標(biāo)簽: 2123 PCF SPI 實時時鐘

    上傳時間: 2013-10-30

    上傳用戶:dajin

  • 代替石英晶體的硅MEMS振蕩器介紹

    石英具有非凡的機(jī)械和壓電特性, 使得從19 世紀(jì)40 年代中期以來一直作為基本的時鐘器件. 盡管在陶瓷, 硅晶和RLC電路方面有60 多年的研究, 在此之前沒有哪種材料或技術(shù)能替代石英振蕩器, 鑒于其異常的溫度穩(wěn)定性和相位噪聲特性. 估計2006 年將有100億顆石英振蕩器被制造出來并放置到汽車, 數(shù)碼相機(jī), 工業(yè)設(shè)備, 游戲設(shè)備, 寬帶設(shè)備,蜂窩電話, 以及事實上每一種數(shù)字產(chǎn)品當(dāng)中. 石英振蕩器的制造數(shù)量比地球上的人口還要多.

    標(biāo)簽: MEMS 石英晶體 振蕩器

    上傳時間: 2013-10-17

    上傳用戶:xinshou123456

  • arm指令集(1)

    arm指令集(1)  ARM跳轉(zhuǎn)指令可以從當(dāng)前指令向前或向后的32MB地址空間跳轉(zhuǎn)。這類跳轉(zhuǎn)指令有以下4種。   (1)B 跳4專指令   B〔條件) (地址)   B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉(zhuǎn)到給定的地址,從那里繼續(xù)執(zhí)行。注意:存儲在分支指令中的實際值是相對當(dāng)前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計算,是24位有符號數(shù),左移兩位后有符號擴(kuò)展為32位,表示的有效偏移位為26位(+/- 32 MB)。   (2)BL 帶返回的跳轉(zhuǎn)指令   BI,〔條件) (地址)   BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內(nèi)容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執(zhí)行,它是子例程的一個基本但強力的實現(xiàn)。   (3)BLX 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令   BLX <地址>   BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉(zhuǎn)到指令中指定的目標(biāo)地址,并將程序狀態(tài)切換到Thumb狀態(tài),該指令同時將PC寄存器的內(nèi)容復(fù)制到LR寄存器中。   BLX(1)指令屬于無條件執(zhí)行的指令。   第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉(zhuǎn)到指令中指定的目標(biāo)地址,目標(biāo)地址的指令可以是ARM指令,也可以是Thumb指令。目標(biāo)地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標(biāo)地址處的指令類型由CPSR中的T位決定。該指令同時將PC寄存器的內(nèi)容復(fù)制到LR寄存器中。   (4)BX 帶狀態(tài)切換的跳轉(zhuǎn)指令   BX(條件) (dest)   BX指令跳轉(zhuǎn)到指令中指定的目標(biāo)地址,目標(biāo)地址處的指令可以是ARM指令,也可以是Thumb指令。目標(biāo)地址值為指令的值和0xFl·FFFFFF做“與”操作的結(jié)果,目標(biāo)地址處的指令類型由寄存器決定。

    標(biāo)簽: arm 指令集

    上傳時間: 2014-12-27

    上傳用戶:laomv123

  • ARM處理器的工作模式

    ARM處理器的工作模式 ARM處理器狀態(tài)    ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時處理器執(zhí)行32位的字對齊的ARM指令;第二種為Thumb狀態(tài),此時處理器執(zhí)行16位的、半字對齊的Thumb指令。在程序的執(zhí)行過程中,微處理器可以隨時在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時,應(yīng)該處于ARM狀態(tài)。  ARM處理器狀態(tài)    進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時,可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此外,當(dāng)處理器處于Thumb狀態(tài)時發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態(tài)。    進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位為0時,執(zhí)行BX指令時可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進(jìn)行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。ARM處理器模式    ARM微處理器支持7種運行模式,分別為:用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)。快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統(tǒng)使用的保護(hù)模式。數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時進(jìn)入該模式,可用于虛擬存儲及存儲保護(hù)。系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)任務(wù)。定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。ARM處理器模式    ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運行在用戶模式下,當(dāng)處理器運行在用戶模式下時,某些被保護(hù)的系統(tǒng)資源是不能被訪問的。    除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。ARM寄存器    ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數(shù)器(PC)在內(nèi)。這些寄存器都是32位寄存器。以及6個32位狀態(tài)寄存器。 關(guān)于寄存器這里就不詳細(xì)介紹了,有興趣的人可以上網(wǎng)找找,很多這方面的資料。異常處理    當(dāng)正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個異常同時發(fā)生,它們將會按固定的優(yōu)先級進(jìn)行處理。當(dāng)一個異常出現(xiàn)以后,ARM微處理器會執(zhí)行以下幾步操作:進(jìn)入異常處理的基本步驟:將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。將CPSR復(fù)制到相應(yīng)的SPSR中。根據(jù)異常類型,強制設(shè)置CPSR的運行模式位。強制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。如果異常發(fā)生時,處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時,處理器自動切換到ARM狀態(tài)。 ARM微處理器對異常的響應(yīng)過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當(dāng)運行于 ARM 工作狀態(tài)時If == Reset or FIQ then;當(dāng)響應(yīng) FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。將SPSR復(fù)制回CPSR中。若在進(jìn)入異常處理時設(shè)置了中斷禁止位,要在此清除。

    標(biāo)簽: ARM 處理器 工作模式

    上傳時間: 2013-11-15

    上傳用戶:hanbeidang

  • 單片機(jī)指令系統(tǒng)

    單片機(jī)指令系統(tǒng) 3.1 MCS-51指令簡介 3.2 指令系統(tǒng) 3.1  MCS-51指令簡介 二、MCS-51系列單片機(jī)指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址         1、數(shù)據(jù)傳送指令位操 2、直接尋址             2、算術(shù)運算指令 3、寄存器尋址           3、邏輯運算指令 4、寄存器間接尋址指令   4、控制轉(zhuǎn)移類指令 5、相對尋址             5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址    MOV A, @R1        操作數(shù)是通過寄存器間接得到的。 4、立即尋址               MOV  A, #40H        操作數(shù)在指令中直接給出。 5、基址寄存器加變址寄存器尋址        以DPTR或PC為基址寄存器,以A為變址寄存器,        以兩者相加形成的16位地址為操作數(shù)的地址。                   MOVC A, @A+DPTR                   MOVC A, @A+PC 四、指令中常用符號說明 Rn——當(dāng)前寄存器區(qū)的8個工作寄存器R0~R7(n=0~7); Ri——當(dāng)前寄存器區(qū)可作地址寄存器的2個工作寄存器R0和R1(i=0,1); direct——8位內(nèi)部數(shù)據(jù)存儲器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(shù)(立即數(shù)); #datal6——表示16位常數(shù); add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號中單元的內(nèi)容 (( ))——表示間接尋址的內(nèi)容; 五、MCS-51指令簡介 1. 以累加器A為目的操作數(shù)的指令 2.  以Rn為目的操作數(shù)的指令 3.  以直接地址為目的操作數(shù)的指令 4.  以寄存器間接地址為目的操作數(shù)指令 應(yīng)用舉例1 8段數(shù)碼管顯示 應(yīng)用舉例2 3.2  指令系統(tǒng) 2、堆棧操作指令  3.  累加器A與外部數(shù)據(jù)傳輸指令 4.  查表指令    MOVC  A,   @A+PC  例子: 5.  字節(jié)交換指令 6.  半字節(jié)交換指令 二、算術(shù)操作類指令 PSW寄存器 2.  帶進(jìn)位加法指令 3.  加1指令 4.  十進(jìn)制調(diào)整指令 5.  帶借位減法指令(Subtraction) 6.  減1指令(Decrease) 7.   乘法指令(Multiplication) 8.  除法指令(Division)        三、邏輯運算指令 1.  簡單邏輯操作指令 2.  循環(huán)指令 帶進(jìn)位左循環(huán)指令(Rotate  Accumulator Left   through  Carry  flag)      右循環(huán)指令(Rotate  Accumulator  Right) 帶進(jìn)位右循環(huán)指令(Rotate  A  Right  with  C) 3.   邏輯與指令 4.  邏輯或指令 5.  邏輯異或指令 四、控制轉(zhuǎn)移類指令 1.  跳轉(zhuǎn)指令 相對轉(zhuǎn)移指令   SJMP   rel           PC←(PC)+2                                                                                                                            PC←(PC)+rel 程序中標(biāo)號與地址之間的關(guān)系 2.  條件轉(zhuǎn)移指令 3.  比較不相等轉(zhuǎn)移指令 4.  減 1 不為 0 轉(zhuǎn)移指令 5.  調(diào)用子程序指令 7.  中斷返回指令 五、位操作指令 1.  數(shù)據(jù)位傳送指令 2.  位變量邏輯指令 3.  條件轉(zhuǎn)移類指令

    標(biāo)簽: 單片機(jī) 指令系統(tǒng)

    上傳時間: 2013-10-27

    上傳用戶:xuanjie

  • PCB可測性設(shè)計布線規(guī)則之建議―從源頭改善可測率

    P C B 可測性設(shè)計布線規(guī)則之建議― ― 從源頭改善可測率PCB 設(shè)計除需考慮功能性與安全性等要求外,亦需考慮可生產(chǎn)與可測試。這里提供可測性設(shè)計建議供設(shè)計布線工程師參考。1. 每一個銅箔電路支點,至少需要一個可測試點。如無對應(yīng)的測試點,將可導(dǎo)致與之相關(guān)的開短路不可檢出,并且與之相連的零件會因無測試點而不可測。2. 雙面治具會增加制作成本,且上針板的測試針定位準(zhǔn)確度差。所以Layout 時應(yīng)通過Via Hole 盡可能將測試點放置于同一面。這樣就只要做單面治具即可。3. 測試選點優(yōu)先級:A.測墊(Test Pad) B.通孔(Through Hole) C.零件腳(Component Lead) D.貫穿孔(Via Hole)(未Mask)。而對于零件腳,應(yīng)以AI 零件腳及其它較細(xì)較短腳為優(yōu)先,較粗或較長的引腳接觸性誤判多。4. PCB 厚度至少要62mil(1.35mm),厚度少于此值之PCB 容易板彎變形,影響測點精準(zhǔn)度,制作治具需特殊處理。5. 避免將測點置于SMT 之PAD 上,因SMT 零件會偏移,故不可靠,且易傷及零件。6. 避免使用過長零件腳(>170mil(4.3mm))或過大的孔(直徑>1.5mm)為測點。7. 對于電池(Battery)最好預(yù)留Jumper,在ICT 測試時能有效隔離電池的影響。8. 定位孔要求:(a) 定位孔(Tooling Hole)直徑最好為125mil(3.175mm)及其以上。(b) 每一片PCB 須有2 個定位孔和一個防呆孔(也可說成定位孔,用以預(yù)防將PCB反放而導(dǎo)致機(jī)器壓破板),且孔內(nèi)不能沾錫。(c) 選擇以對角線,距離最遠(yuǎn)之2 孔為定位孔。(d) 各定位孔(含防呆孔)不應(yīng)設(shè)計成中心對稱,即PCB 旋轉(zhuǎn)180 度角后仍能放入PCB,這樣,作業(yè)員易于反放而致機(jī)器壓破板)9. 測試點要求:(e) 兩測點或測點與預(yù)鉆孔之中心距不得小于50mil(1.27mm),否則有一測點無法植針。以大于100mil(2.54mm)為佳,其次是75mil(1.905mm)。(f) 測點應(yīng)離其附近零件(位于同一面者)至少100mil,如為高于3mm 零件,則應(yīng)至少間距120mil,方便治具制作。(g) 測點應(yīng)平均分布于PCB 表面,避免局部密度過高,影響治具測試時測試針壓力平衡。(h) 測點直徑最好能不小于35mil(0.9mm),如在上針板,則最好不小于40mil(1.00mm),圓形、正方形均可。小于0.030”(30mil)之測點需額外加工,以導(dǎo)正目標(biāo)。(i) 測點的Pad 及Via 不應(yīng)有防焊漆(Solder Mask)。(j) 測點應(yīng)離板邊或折邊至少100mil。(k) 錫點被實踐證實是最好的測試探針接觸點。因為錫的氧化物較輕且容易刺穿。以錫點作測試點,因接觸不良導(dǎo)致誤判的機(jī)會極少且可延長探針使用壽命。錫點尤其以PCB 光板制作時的噴錫點最佳。PCB 裸銅測點,高溫后已氧化,且其硬度高,所以探針接觸電阻變化而致測試誤判率很高。如果裸銅測點在SMT 時加上錫膏再經(jīng)回流焊固化為錫點,雖可大幅改善,但因助焊劑或吃錫不完全的緣故,仍會出現(xiàn)較多的接觸誤判。

    標(biāo)簽: PCB 可測性設(shè)計 布線規(guī)則

    上傳時間: 2014-01-14

    上傳用戶:cylnpy

  • 單片機(jī)A/D和D/A應(yīng)用接口技術(shù)

    18-2.  D/A轉(zhuǎn)換器基本知識18-3. 光導(dǎo)智能小車硬件實現(xiàn)18-4. ADC0832基本應(yīng)用方法18-5. 光導(dǎo)智能小車軟件實現(xiàn)A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)分辨率  使輸出數(shù)字量變化一個相鄰數(shù)碼所需輸入模擬電壓的變化量。常        用二進(jìn)制的位數(shù)表示。        例如:12位ADC的分辨率就是12位,一個10V滿刻度的12位ADC能分辨        輸入電壓變化最小是:                       10V×1/212=2.4mV量化誤差 ADC把模擬量變?yōu)閿?shù)字量,用數(shù)字量近似表示模擬量,這個過程稱為量化。量化誤差是ADC的有限位數(shù)對模擬量進(jìn)行量化而引起的誤差。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)偏移誤差      指輸入信號為零時,輸出信號不為零的值,所以有時又稱為零值誤差。滿刻度誤差 滿刻度誤差又稱為增益誤差。指滿刻度輸出數(shù)碼所對應(yīng)的實際輸入電壓與理想輸入電壓之差。線性度 線性度有時又稱為非線性度,指轉(zhuǎn)換器實際的轉(zhuǎn)換特性與理想直線的最大偏差。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)絕對精度 在一個轉(zhuǎn)換器中,任何數(shù)碼所對應(yīng)的實際模擬量輸入與理論模擬輸入之差的最大值,稱為絕對精度。對于ADC而言,可以在每一個階梯的水平中點進(jìn)行測量,它包括了所有的誤差。轉(zhuǎn)換速率 指ADC能夠重復(fù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的速度,即每秒轉(zhuǎn)換的次數(shù)。而完成一次A/D轉(zhuǎn)換所需的時間(包括穩(wěn)定時間),則是轉(zhuǎn)換速率的倒數(shù)。

    標(biāo)簽: 單片機(jī) 應(yīng)用接口

    上傳時間: 2013-11-25

    上傳用戶:banlangen

  • 改善基于微控制器的應(yīng)用的瞬態(tài)免疫性能

    家電制造業(yè)的競爭日益激烈,市場調(diào)整壓力越來越大,原始設(shè)備制造商們(OEM)為了面對這一挑戰(zhàn),必須在滿足電磁兼容性的條件下,不斷降低產(chǎn)品的成本。由于強調(diào)成本控制,為防止由電源和信號線的瞬變所產(chǎn)生的電器故障而實施必要的瞬態(tài)免疫保護(hù),對于家電設(shè)計者來說變得更具挑戰(zhàn)性。由于傳統(tǒng)的電源設(shè)計和電磁干擾(EMI)控制措施為節(jié)約成本讓路,家電設(shè)計者必須開發(fā)出新的技術(shù)來滿足不斷調(diào)整的電磁兼容(EMC)需求。本應(yīng)用筆記探討了瞬態(tài)電氣干擾對嵌入式微控制器(MCU)的影響,并提供了切實可行的硬件和軟件設(shè)計技術(shù),這些技術(shù)可以為電快速瞬變(EFT)、靜電放電(ESD)以及其它電源線或信號線的短時瞬變提供低成本的保護(hù)措施。雖然這種探討是主要針對家電制造商,但是也適用于消費電子、工業(yè)以及汽車電子方面的應(yīng)用。

    標(biāo)簽: 微控制器 瞬態(tài)免疫 性能

    上傳時間: 2013-11-22

    上傳用戶:csgcd001

  • 模擬接口

    8.1  模擬接口概述單片機(jī)的外部設(shè)備不一定都是數(shù)字式的,也經(jīng)常會和模擬式的設(shè)備連接。     例如單片機(jī)來控制溫度、壓力時,溫度和壓力都是連續(xù)變化的,都是模擬量,在單片機(jī)與外部環(huán)境通信的時候,就需要有一種轉(zhuǎn)換器來把模擬信號變?yōu)閿?shù)字信號,以便能夠輸送給單片機(jī)進(jìn)行處理。而單片機(jī)送出的控制信號,也必須經(jīng)過變換器變成模擬信號,才能為控制電路所接受。這種變換器就稱為數(shù)模(D/A)轉(zhuǎn)換器和模數(shù)(A/D)轉(zhuǎn)換器。CPU與模擬外設(shè)之間的接口電路稱為模擬接口。在這一章里將介紹單片機(jī)與 A/D及D/A轉(zhuǎn)換器接口,以及有關(guān)的應(yīng)用。  8.2  DAC及其接口一、DAC介紹:1.DAC結(jié)構(gòu):DAC芯片上集成有D/A轉(zhuǎn)換電路和輔助電路。2.DAC的參數(shù):描述D/A轉(zhuǎn)換器性能的參數(shù)很多,主要有以下幾個:分辨率(Resolution) 偏移誤差(OffsetError)  線性度(Linearity) 精度(Accuracy) 轉(zhuǎn)換速度(ConvemionRate) 溫度靈敏度(TemperatureSensitivity) 二、典型DAC芯片及其接口一、DAC介紹:1.DAC結(jié)構(gòu):DAC芯片上集成有D/A轉(zhuǎn)換電路和輔助電路。2.DAC的參數(shù):描述D/A轉(zhuǎn)換器性能的參數(shù)很多,主要有以下幾個:分辨率(Resolution) 偏移誤差(OffsetError)  線性度(Linearity) 精度(Accuracy) 轉(zhuǎn)換速度(ConvemionRate) 溫度靈敏度(TemperatureSensitivity)  8.3  ADC及其接口DAC 0832的結(jié)構(gòu)DAC 0832的引腳DAC 0832的接口DAC 0832的應(yīng)用DAC0832是CMOS工藝,雙列直插式20引腳。① VCC電源可以在5-15V內(nèi)變化。典型使用時用15V電源。② AGND為模擬量地線,DGND為數(shù)字量地線,使用時,這兩個接地端應(yīng)始終連在一起。③ 參考電壓VREF接外部的標(biāo)準(zhǔn)電源,VREF一般可在+10V到—10V范圍內(nèi)選用。

    標(biāo)簽: 模擬接口

    上傳時間: 2013-10-10

    上傳用戶:ukuk

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

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

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

    上傳時間: 2013-12-11

    上傳用戶:nunnzhy

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美福利视频在线观看| 久久久女女女女999久久| 国产精品亚洲产品| 一区二区激情| 亚洲精品日本| 在线观看av一区| 亚洲国产精选| 久久综合亚洲社区| 欧美色图麻豆| 亚洲一区二区高清视频| 亚洲久久视频| 亚洲欧洲一区二区在线播放| 亚洲激情欧美| 日韩午夜精品视频| 亚洲欧美综合另类中字| 欧美淫片网站| 一区二区三区日韩在线观看| 国内精品模特av私拍在线观看| 国产一区二区三区在线观看视频| 久久久久网站| 国产一区在线播放| 国产一区二区av| 亚洲国产欧美在线人成| 一本大道久久a久久精二百| 午夜精品在线| 久久成人精品一区二区三区| 91久久精品国产| 在线视频你懂得一区| 欧美一区二区啪啪| 亚洲第一视频网站| 久久综合九色欧美综合狠狠| 亚洲一区二区在线| 亚洲国产成人精品女人久久久 | 国产日韩欧美一区二区三区在线观看 | 欧美一区二区三区四区高清| 一本久久知道综合久久| 一区二区三区精密机械公司 | 国产精品久久777777毛茸茸| 欧美一区二区三区男人的天堂 | 午夜久久影院| 亚洲精品中文字幕有码专区| 亚洲小少妇裸体bbw| 在线亚洲自拍| 欧美一区二区三区的| 久久性色av| 玖玖玖免费嫩草在线影院一区| 免费不卡视频| 亚洲精品看片| 亚洲午夜小视频| 午夜精品国产更新| 久久免费少妇高潮久久精品99| 欧美乱大交xxxxx| 国产精品国产三级国产aⅴ无密码| 欧美日韩不卡一区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 亚洲黄一区二区| 欧美性猛交视频| 99re视频这里只有精品| 欧美在线资源| 在线免费观看日韩欧美| 亚洲午夜精品久久久久久浪潮| 欧美专区福利在线| 久久婷婷丁香| 一本大道久久a久久精品综合| 欧美一级视频一区二区| 亚洲综合视频网| 国产欧美日韩精品丝袜高跟鞋 | 亚洲午夜精品久久久久久app| 亚洲婷婷免费| 久久一区中文字幕| 国产精品久久久久久av下载红粉 | 久久久久久尹人网香蕉| 欧美日韩高清在线| 狠狠爱综合网| 欧美一区=区| 国产精品日本精品| 亚洲欧美日韩天堂一区二区| 国产精品一国产精品k频道56| a4yy欧美一区二区三区| 欧美日韩一级视频| 在线欧美三区| 久久精品国产亚洲一区二区三区| 麻豆精品一区二区av白丝在线| 国产精品视频yy9099| 亚洲天堂成人在线视频| 亚洲永久免费av| 亚洲视频中文| 蘑菇福利视频一区播放| 黄色成人在线网站| 亚洲欧美日本另类| 欧美日韩喷水| 99综合在线| 欧美国内亚洲| 国产精品久久久久久久久久久久| 宅男噜噜噜66一区二区66| 免费在线欧美视频| 亚洲电影在线看| 国产主播一区二区| 久久久亚洲高清| 久久婷婷色综合| 亚洲手机在线| 久久午夜国产精品| 日韩小视频在线观看专区| 亚洲黄色在线看| 国产精品免费区二区三区观看| 亚洲少妇在线| 国产精品久久久久免费a∨| 午夜精品国产| 欧美高清视频在线观看| 国产免费亚洲高清| 老司机精品导航| 一区二区三区偷拍| 亚洲精品1区| 国产精品成人观看视频国产奇米| 国产麻豆日韩欧美久久| 久久久久国产精品人| 国内在线观看一区二区三区| 美日韩丰满少妇在线观看| 亚洲视频网站在线观看| 欧美日韩综合不卡| 欧美在线视频免费| 亚洲第一区在线观看| 亚洲欧美日韩精品久久久久| 韩国在线视频一区| 欧美性大战久久久久| 久久乐国产精品| 日韩视频免费看| 精品动漫3d一区二区三区| 国产精品久久久久aaaa樱花| 欧美日韩在线一二三| 日韩午夜激情av| 一区二区自拍| 国产精品久久夜| 欧美区二区三区| 久久久久久999| 欧美激情bt| 久久一区二区精品| 国产一区二区三区四区在线观看 | 亚洲激情成人网| 国产精品视频网| 欧美日韩一区在线视频| 欧美中文字幕在线| 亚洲综合色激情五月| 99精品热视频| 亚洲国产精选| 亚洲福利视频免费观看| 国产欧美在线看| 国产精品久久久爽爽爽麻豆色哟哟| 麻豆av一区二区三区久久| 国产日韩欧美夫妻视频在线观看| 欧美国产日韩一区二区| 欧美韩国在线| 日韩视频在线一区二区三区| 午夜在线a亚洲v天堂网2018| 亚洲一区二区在线| 午夜在线a亚洲v天堂网2018| 久久综合伊人| 免费久久精品视频| 久久夜色精品国产欧美乱极品 | 先锋影音国产一区| 欧美精品videossex性护士| 欧美成人免费在线| 欧美xx69| 欧美视频福利| 欧美一区二区三区久久精品| 午夜精品亚洲| 欧美在线短视频| 久久久青草婷婷精品综合日韩| 久久久久国产精品麻豆ai换脸| 亚洲欧美中文日韩v在线观看| 亚洲女人天堂成人av在线| 亚洲天堂成人| 亚洲中无吗在线| 亚洲欧美成人| 午夜精品美女自拍福到在线| 欧美日韩美女一区二区| 久久一区激情| 久久久久国产精品麻豆ai换脸| 国产欧美在线视频| 狠狠色噜噜狠狠狠狠色吗综合| 伊人久久成人| 亚洲精品日韩在线观看| 亚洲永久免费视频| 久久xxxx精品视频| 美女国内精品自产拍在线播放| 欧美高清hd18日本| 欧美视频中文字幕| 一区二区免费在线播放| 欧美在线观看一区二区三区| 欧美怡红院视频| 蜜桃av久久久亚洲精品| 欧美日本国产一区| 国产日韩欧美成人| 亚洲精品日韩激情在线电影 | 亚洲精品综合| 欧美另类视频| 国产精品久久一级| 亚洲盗摄视频| 亚洲精品在线观看视频| 欧美寡妇偷汉性猛交|