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

正文內(nèi)容

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

2025-02-02 17:12 本頁(yè)面
 

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