編輯:關於android開發
a.概述
中斷門和陷阱門的作用機理幾乎是一樣的,只不過使用調用門時使用call指令,而這裡我們使用int指令。中斷門和陷阱門的結構如下圖:
TYPE的4位將變為0xE(中斷門)或0xF(陷阱門)。
指令int n產生中斷時的情形如下圖所示,n即為向量號,它類似於調用門的使用。
b.建立IDT
; IDT [SECTION .idt] ALIGN 32 [BITS 32] LABEL_IDT: ; 門 目標選擇子, 偏移, DCount, 屬性 %rep 255 Gate SelectorCode32, SpuriousHandler, 0, DA_386IGate %endrep IdtLen equ $ - LABEL_IDT IdtPtr dw IdtLen - 1 ; 段界限 dd 0 ; 基地址 ; END of [SECTION .idt]
每個描述符都設置為指向SelectorCode32:SpuriousHandler的中斷門。
; 為加載 IDTR 作准備 xor eax, eax mov ax, ds shl eax, 4 add eax, LABEL_IDT ; eax <- idt 基地址 mov dword [IdtPtr + 2], eax ; [IdtPtr + 2] <- idt 基地址 ; 關中斷 cli ; 加載 IDTR lidt [IdtPtr]
c.實現一個中斷
call Init8259A int 080h
運行結果如下:
接下來修改IDT,把第80h號中斷單獨列出來。
; IDT [SECTION .idt] ALIGN 32 [BITS 32] LABEL_IDT: ; 門 目標選擇子, 偏移, DCount, 屬性 %rep 128 Gate SelectorCode32, SpuriousHandler, 0, DA_386IGate %endrep .080h: Gate SelectorCode32, UserIntHandler, 0, DA_386IGate IdtLen equ $ - LABEL_IDT IdtPtr dw IdtLen - 1 ; 段界限 dd 0 ; 基地址 ; END of [SECTION .idt]
運行結果如下:
【源碼】
android 特殊用戶通知用法匯總--Notification源碼分析 一直用的android手機,用過這麼多的app,平時也會遇到有趣的通知提醒,在這裡先總結
RxAndroid使用方法介紹 熟悉RxAndroid的使用方法. 要點包含: (1) 鏈式表達式的使用方式. (2) Lambda的應用. (3) Rx處理網絡請求
Android APK的安裝,AndroidAPK安裝打開packages\apps\PackageInstaller下的清單文件 <?xml version=1
Gradle混淆+打包Jar包基礎,gradle混淆打包jar本文為原創文章,轉載請注明出處。 文章最後會附帶源碼下載地址,有需要的朋友可下載。 通常我們編