最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ì)的說明的評論 (共 條)

分享到微博請遵守國家法律
肇源县| 昭通市| 高青县| 义马市| 乌海市| 东方市| 措美县| 太保市| 政和县| 临武县| 攀枝花市| 平舆县| 南安市| 冀州市| 永寿县| 民乐县| 黎平县| 元谋县| 凉城县| 澜沧| 西林县| 时尚| 班戈县| 镇康县| 泸定县| 庆城县| 清河县| 富阳市| 茶陵县| 瑞金市| 漠河县| 铜鼓县| 宾川县| 广灵县| 休宁县| 郴州市| 辰溪县| 南乐县| 奉化市| 锡林郭勒盟| 栾川县|