五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

對一個中斷程序比較詳細(xì)的說明

2023-03-26 18:02 作者:我愛計算機科學(xué)  | 我要投稿

8086的中斷由中斷控制器芯片8259A控制,其內(nèi)部結(jié)構(gòu)如下圖:

圖1

CPU與8259的連接如下圖:

圖2

要特別注意,8259由引腳INT向CPU發(fā)出中斷請求,CPU則通過INTA引腳響應(yīng)這個請求。

下面是一個中斷程序,這個程序是顯示10遍字符串‘A 8259A Interrupt’:

圖3

上圖是定義字符串

圖4

上圖是保存原中斷向量表中的8號中斷源的地址,調(diào)用了INT 21H的35H號功能。

圖5

上圖是將自己編寫的中斷程序new08的入口地址放入中斷向量表類型8的存儲單元中,調(diào)用了INT 21H的25H號功能。

圖6

由于上圖的中斷向量表是系統(tǒng)設(shè)定的,只能臨時更改,所以要把類型8中斷的向量地址保存下來。

圖7

注意圖1和圖2中8259有8個中斷采集引腳IR0-IR8,但在某個具體的程序中,不一定要全部用到,所以可以通過中斷屏蔽寄存器IMR設(shè)定哪些引腳生效。上圖是保證IR0引腳有效,用于接收定時器8253的中斷請求。

圖8

主程序運行到這里以后,就在這里循環(huán)等待中斷程序的中斷請求。

從上圖開始進入中斷程序。

注意counter是中斷程序和主程序進行交流的變量。


上面兩個圖是從字符串‘A 8259A Interrupt’逐個取出字符,并調(diào)用int10h進行顯示,其中的BX表示字符顯示的位置和顏色,AH是int10h的功能號。


中斷程序每調(diào)用一次,就顯示一次字符串,每次運行完以后都要恢復(fù)圖3中保存的原中斷向量表中的8號中斷源的地址。


最后要恢復(fù)圖4中保存的原中斷類型8在向量表中的地址和圖7中保存的原中斷屏蔽寄存器IMR中的內(nèi)容。

上面程序這個編程思路可以概括如下:

1:開始編寫程序的時候,我們要有圖2的大概印象,即8259和8086是通過中斷引腳INT和INTR連接的,我們編寫的這個程序,是要響應(yīng)8259通過INT引腳向CPU發(fā)出的中斷請求的,這個中斷請求可以是一個5V的高電平。

2:8259每隔一段時間(比如1秒鐘)才發(fā)出一次請求。

3:8086響應(yīng)一次中斷請求就執(zhí)行一次中斷程序new08。

4:由于8259A1秒鐘才發(fā)出一次請求,而CPU執(zhí)行指令的時間則非??欤{秒級),那么,CPU多余的時間怎么辦呢?因此,主程序中必須有一個循環(huán)等待指定(圖8),也就是說,當(dāng)CPU響應(yīng)一次中斷即執(zhí)行完一次中斷程序以后,多余的時間就執(zhí)行循環(huán)指令,等待下一次中斷請求的到來。

5:必須把主程序和中斷程序區(qū)分開來,主程序肯定會被CPU執(zhí)行,中斷程序則只有當(dāng)INT引腳出現(xiàn)8259的中斷請求以后才會被執(zhí)行。


對一個中斷程序比較詳細(xì)的說明的評論 (共 條)

分享到微博請遵守國家法律
丰台区| 新安县| 冀州市| 乐山市| 赣州市| 平利县| 西华县| 黄平县| 普安县| 房产| 正镶白旗| 嘉祥县| 乌苏市| 兴海县| 保定市| 锦州市| 中宁县| 乃东县| 隆林| 陕西省| 玉林市| 信宜市| 苏州市| 乌拉特后旗| 石泉县| 侯马市| 文安县| 嘉祥县| 东兴市| 德清县| 怀宁县| 东丽区| 阳泉市| 文水县| 夏河县| 莱芜市| 东安县| 成安县| 武平县| 都匀市| 永宁县|