組合語言 外中斷

2021-10-03 23:54:49 字數 995 閱讀 4330

cpu在計算機系統中,除了能夠執行命令,進行運算以外,還應該能夠對外部裝置進行控制,接收它們的輸入,向它們進行輸出。也就是說,cpu除了有運算能力外,還要有i/o能力。

在pc系統的介面卡和主機板上,裝有各種介面晶元。這些外設介面晶元的內部有若干暫存器,cpu將這些暫存器當作埠來訪問。外設的輸入不直接送入記憶體和cpu,而是送入相關的介面晶元和埠中。cpu向外設的輸出也不是直接送入外設,而實先送入埠中,再由相關的晶元送到外設。

當cpu 檢測到可遮蔽中斷資訊時:

如果if=1,則cpu 在執行完當前指令後響應中斷,引發中斷過程;

如果if=0,則不響應可遮蔽中斷。

可遮蔽中斷資訊來自於cpu外部,中斷型別碼是通過資料匯流排送入cpu的。

8086cpu 提供的設定if的指令如下:

sti,用於設定if=1;

cli,用於設定if=0。

對於8086cpu不可遮蔽中斷的中斷型別碼固定為2。所以中斷過程中,不需要取中斷型別碼。

鍵盤輸入的處理過程:

鍵盤輸入

引發9號中斷

執行int 9中斷例程

按下乙個鍵時,開關接通,該晶元就產生乙個掃瞄碼,掃瞄碼說明了按下的鍵在鍵盤上的位置。掃瞄碼被送入主機板上的相關介面晶元的暫存器中,該暫存器的埠位址為60h。

鬆開按下的鍵時,也產生乙個掃瞄碼,掃瞄碼說明了鬆開的鍵在鍵盤上的位置。鬆開按鍵時產生的掃瞄碼也被送入60h埠中。

掃瞄碼長度為乙個位元組,通碼的第7位為0,斷碼的第7位為1,即:斷碼 = 通碼+80h

bios鍵盤緩衝區可以儲存15個鍵盤輸入,因為int9中斷例程除了接收掃瞄碼外,還要產生和掃瞄碼對應的字元碼,所以在bios鍵盤緩衝區中,乙個鍵盤輸入用乙個字單元存放,高位位元組存放掃瞄碼,低位位元組存放字元碼。

0040:17 單元儲存鍵盤狀態位元組,該位元組記錄了控制鍵和切換鍵的狀態。鍵盤狀態位元組各位記錄的資訊如下:

組合語言 內中斷

內中斷 在執行完當前正在執行的指令之後,檢測到從cpu內部發過來的或內部產生的一種特殊資訊,並且可以立即對所接收到的資訊進行處理 中斷資訊可以 於cpu外部和內部 內中斷的產生 1除法錯誤 0 2單步執行 1 3執行into指令 4 into 溢位中斷 4執行int指令,該指令格式 int n 指令...

組合語言 內中斷

中斷的意思是指cpu不在接著 剛執行的指令 向下執行,而是轉去處理這個特殊資訊,而這個特殊的資訊我們可以稱其為中斷資訊。中斷資訊是要求cpu馬上進行某種處理,並向所要進行的該種處理提供了必備的引數的通知資訊。對於8086cpu,當cpu內部有下面的情況發生的時候,將產生響應的中斷資訊。而中斷資訊中必...

組合語言 單步中斷

cpu在執行完一條指令之後,如果檢測到標誌暫存器的tf位為1,則產生單步中斷,引發中斷過程。單步中斷的中斷型別碼為1 debug是如何利用cpu所提供的單步中斷的功能進行除錯?如使用t命令檢視暫存器狀態 debug提供了單步中斷的中斷處理程式,功能為顯示所有暫存器中的內容後等待輸入命令 在使用t命令...