freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

匯編語言程序設(shè)計第十三章中斷及中斷處理程序(編輯修改稿)

2025-02-02 17:12 本頁面
 

【文章內(nèi)容簡介】 每條指令周期結(jié)束時才檢測是否有中斷請求信號,所以中斷請求觸發(fā)器包含一個鎖存器,它將中斷請求信號鎖存起來直到 CPU來檢測之后再清除。 ( 2)中斷源的中斷屏蔽觸發(fā)器未被置位,否則該中斷源的所有中斷請求將被屏蔽掉。若干中斷源的屏蔽觸發(fā)器可以組成一個中斷屏蔽寄存器。 ( 3) CPU內(nèi)的中斷允許觸發(fā)器置位。當 CPU響應(yīng)中斷之后, CPU自動將中斷允許觸發(fā)器復(fù)位,即關(guān)中斷。因此,在中斷服務(wù)程序中,保護現(xiàn)場后一般情況下應(yīng)該使用 STI指令開中斷,使 CPU能夠繼續(xù)響應(yīng)來自其他中斷源的更高級別的中斷請求,來實現(xiàn)所謂的中斷嵌套。 ? 當上述 3個條件都滿足時,如果此時 CPU正好處在指令周期的結(jié)束并檢測到有中斷請求時,那么就響應(yīng)中斷并進入中斷響應(yīng)周期。 南開大學(xué) 朱耀庭 中斷的優(yōu)先級 ?多數(shù)中斷是隨機發(fā)生的 , 所以必然會出現(xiàn)某一時刻有多個中斷源同時請求中斷的情況 。 ? CPU在某一時刻只能處理一個中斷 , 因此 , 它需要決定首先為哪一個中斷源服務(wù) 。 ? CPU根據(jù)中斷源請求的輕重緩急 , 預(yù)先定義好中斷處理的優(yōu)先級 , 首先響應(yīng)緊急的 、 級別高的中斷請求 , 然后響應(yīng)級別輕緩的中斷請求 。 ?當 CPU正在處理某一中斷時 , 它還應(yīng)該能夠響應(yīng)優(yōu)先級更高的中斷請求 , 而屏蔽掉同級或較低級的中斷請求 。 南開大學(xué) 朱耀庭 中斷的優(yōu)先級 軟件查詢法 1 硬件查詢法 2 南開大學(xué) 朱耀庭 1. 軟件查詢法 ?軟件查詢優(yōu)先級的方法十分簡單,它將所有外設(shè)的中斷請求觸發(fā)器組合成一個寄存器端口。 ?當 CPU接收到中斷請求信號時,由一個查詢程序來逐位檢測中斷請求寄存器的狀態(tài)。先被檢測的位,它所對應(yīng)的中斷源是高優(yōu)先級的;后檢測的位,它所對應(yīng)的中斷源是低優(yōu)先級的。 ?由于軟件查詢法是通過程序?qū)崿F(xiàn)查詢的,所以當中斷源較多時軟件查詢的時間就會較長。 南開大學(xué) 朱耀庭 2. 硬件查詢法 ? 硬件查詢是一種廣泛使用的中斷優(yōu)先級排隊方式,它通過使用優(yōu)先權(quán)控制器 (PIC)萊實現(xiàn)優(yōu)先級排隊。優(yōu)先權(quán)中斷控制器是由優(yōu)先權(quán)編碼器和比較器等構(gòu)成的電路,再加上中斷請求寄存器、中斷屏蔽寄存器共同組成了一個比較完整的中斷控制系統(tǒng)。 ? 優(yōu)先權(quán)控制器 PIC可同時接收 8個中斷輸入。與每一個中斷請求位對應(yīng)的有一個中斷屏蔽位,程序設(shè)計者可以對中斷屏蔽寄存器編程以選擇允許的中斷。這樣可以靈活地調(diào)整中斷優(yōu)先級,并可防止出現(xiàn)低級中斷永遠也得不到響應(yīng)的情況出現(xiàn)。沒有被屏蔽掉的請求信號被送往優(yōu)先級編碼器,其中具有高優(yōu)先級的中斷級由一個 83編碼器轉(zhuǎn)換成 3位碼,用這個 3位碼與 3位的優(yōu)先級寄存器進行比較,這個 3位的優(yōu)先級寄存器是由用戶自己設(shè)定的。用戶設(shè)定了某一值后,只有優(yōu)先級高于這個值的中斷才能產(chǎn)生中斷請求,而等于或低于這個值的所有中斷將被屏蔽掉。此外優(yōu)先級寄存器內(nèi)還有一位可由用戶設(shè)置的禁止位,設(shè)置禁止位后可使中斷優(yōu)先級比較失效,使中斷檢測信號不經(jīng)過比較而直接送到 CPU的中斷請求線上。 南開大學(xué) 朱耀庭 中斷嵌套 ? 中斷嵌套是指當 CPU正在執(zhí)行某一低級別的中斷服務(wù)程序時,允許響應(yīng)更高級別的中斷源的中斷請求,于是暫時掛起正在處理中的中斷,轉(zhuǎn)而進入更高級別的中斷服務(wù),待高優(yōu)先級中斷服務(wù)結(jié)束后,再返回到剛才被中斷的那一級,繼續(xù)執(zhí)行。 ? 由于多重嵌套中斷的某些特點,決定了它與單級中斷在處理過程中有以下不同之處。 ( 1)在響應(yīng)更高級中斷之前要先屏蔽掉本級和較低級的中斷請求,防止干擾; ( 2)在進行本級中斷服務(wù)前保護現(xiàn)場后要先開中斷,以允許更高級的中斷響應(yīng),實現(xiàn)中斷嵌套; ( 3)中斷服務(wù)程序結(jié)束后,為了在恢復(fù)現(xiàn)場時不受任何中斷請求的干擾,必須先關(guān)中斷;而在中斷返回前恢復(fù)現(xiàn)場后再執(zhí)行開中斷指令,以允許 CPU響應(yīng)新的中斷請求。 南開大學(xué) 朱耀庭 軟件中斷 ?通過中斷向量表管理眾多的中斷 , 用戶就可以十分方便地為自己建立一個軟件中斷 。 ?當用戶想要編制和使用自己的中斷服務(wù)程序時 , 先應(yīng)該確定中斷類型;根據(jù)中斷類型確定該中斷在中斷向量表中的位置;然后將自己編制的中斷服務(wù)程序 (可以是駐留內(nèi)存的 , 也可以是非駐留內(nèi)存的 )所在段的段地址和位移填入中斷向量表中對應(yīng)位置的兩個字中 。 ?對于軟件中斷 , 用戶可通過指令 INT n中的類型 n進行安排 。 南開大學(xué) 朱耀庭 軟件中斷 軟件中斷的處理過程 軟件中斷的分類 軟件中斷的訪問 南開大學(xué) 朱耀庭 軟件中斷的處理過程 ? 還是以 DOS系統(tǒng)功能調(diào)用中斷 INT 20H為例,來說明由軟件引起的非屏蔽型中斷,當中斷指令向 CPU發(fā)出中斷請求時, CPU的處理過程如下。 ? 在程序中遇到 INT 20H時,該指令產(chǎn)生中斷類型號為 20H的中斷,該中斷在中斷向量表中的地址為 20H 4=80H,如圖 132所示。如果在DEBUG提示符“ ”后輸入命令 D 0000:0080 L4,就會得到如下結(jié)果: 0000:0080 72 10 A7 00 r… ? D是顯示內(nèi)存單元命令; 0000:0080是要顯示的內(nèi)存單元的起始地址,冒號前 4位 16進制數(shù)是待顯示內(nèi)存單元的段地址,冒號后 4位 16進制數(shù)是待顯示內(nèi)存單元的偏移量; L定義顯示的長度,單位為字節(jié), 4表示顯示長度值。 ? 結(jié)果中的“ 72 10 A7 00”就代表以 0000:0080開始的 4字節(jié)內(nèi)存單元的16進制內(nèi)容,結(jié)果最右邊的“ r…” 是相應(yīng)字節(jié)的 ASCII表示,對不可見的字符以“ .”代替。 南開大學(xué) 朱耀庭 軟件中斷的處理過程 ? 根據(jù)顯示的結(jié)果看出 INT 20H所對應(yīng)的中斷服務(wù)程序的入口地址為00A7:1072(注意內(nèi)存中數(shù)據(jù)的存放格式是由高到低的 )。 ? 在接收 INT 20H指令后, CPU將自動進行如下的操作。 ( 1)將標志寄存器 (FLAGS)壓入堆棧。 ( 2)用清中斷標志 (IF)和陷阱標志 (TF)禁止硬件中斷,即關(guān)中斷。當用戶編制自己的中斷服務(wù)程序時,必要時在程序內(nèi)可以用 STI指令開中斷,即打開由硬件自動關(guān)閉的中斷允許觸發(fā)器,使之能夠響應(yīng)更高級的中斷。 ( 3)將當前代碼段寄存器 (CS)的內(nèi)容壓棧。 ( 4)將當前指令指針 (IP)壓棧,步驟( 3)、( 4)的目的是確保中斷處理完畢之后能夠正確地返回中斷調(diào)用處。 ( 5)轉(zhuǎn)向內(nèi)存地址 00A7:1072處進入中斷服務(wù)程序。 南開大學(xué) 朱耀庭 軟件中斷的處理過程 ?在中斷服務(wù)程序執(zhí)行完后,即 CPU接收到 IRET指令時,又將產(chǎn)生如下的操作。 ( 1)從堆棧中將保存的原指令指針 IP的內(nèi)容彈出到 IP中。 ( 2)從堆棧中將保存的原段寄存器 CS的內(nèi)容彈出到 CS中。 ( 3)從堆棧中保存的原標志寄存器的狀態(tài),再彈出到FLAGS,恢復(fù)中斷時的標志寄存器狀態(tài)。 ?由中斷處理過程可以看出,軟件中斷指令非常類似于子程序調(diào)用的 CALL指令,即:暫停當前程序的執(zhí)行,轉(zhuǎn)而執(zhí)行另一程序段,當該程序段執(zhí)行完時, CPU都自動恢復(fù)原程序的執(zhí)行。 南開大學(xué) 朱耀庭 軟件中斷的處理過程 ? 但兩者之間還是有明顯區(qū)別的。它們的主要差異有以下幾點。 ( 1)子程序調(diào)用是程序員在編寫源程序時事先安排好的,而中斷是由中斷源根據(jù)自身的需要產(chǎn)生的,是不可預(yù)見的 (用指令 INT引起的中斷除外 )。 ( 2)子程序調(diào)用是用 CALL指令來實現(xiàn)的,但沒有調(diào)用中斷的指令,只有發(fā)出中斷請求的事件 (指令 INT是發(fā)出內(nèi)部中斷信號,而不要理解為調(diào)用中斷服務(wù)程序 )。 ( 3)子程序的返回指令是 RET,而中斷服務(wù)程序全部是段間的調(diào)用,所以在結(jié)束時的返回指令是 IRET/IRETD。且軟件中斷的 IRET指令具有自動恢復(fù)斷點和標志的功能。 ( 4)在通常情況下,子程序是由應(yīng)用系統(tǒng)的開發(fā)者來編寫的,而中斷服務(wù)程序是由系統(tǒng)軟件設(shè)計者來編寫的。 南開大學(xué) 朱耀庭 軟件中斷的分類 DOS中斷 1 BIOS中斷 2 自由中斷 3 南開大學(xué) 朱耀庭 1. DOS中斷 ? DOS中斷占用的中斷類型號為20H~3FH, 目前使用了其中的20H~27H和 2FH, 其余的為保留中斷 。 其中每種 DOS中斷類型號與其對應(yīng)的功能見表 132。 中斷類型號 中斷向量地址 功能 20H 00080H~00083H 程序終止 21H 00084H~00087H DOS系統(tǒng)功能調(diào)用 22H 00088H~0008BH 程序終止 DOS返回地址 23H 0008CH~0008FH Ctrl_C中斷向量 24H 00090H~00093
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1