1.cpu中斷是指cpu不再接著向下執行指令,而是轉去處理這個特殊資訊。cpu中斷分為內中斷和外中斷。
2.內中斷包括
3.cpu收到中斷資訊後,需要對中斷信心進行處理,如何處理中斷資訊,由我們程式設計決定。用來處理中斷資訊的程式被稱為中斷處理程式。
3.每乙個中斷資訊都由乙個中斷型別碼,比如除法錯誤的記憶體碼為0。
4.要執行中斷處理程式,我們首先要知道處理程式的記憶體位址。cpu通過中斷向量表來定位處理程式的入口位址。
5.中斷向量表按照中斷型別碼的順序,儲存每乙個中斷程式的入口位址。
6.cpu怎麼找到中斷向量表呢,這個就是約定了,對於8086pc,中斷向量表指定存放在記憶體位址0處。
7.中斷過程是由cpu硬體完成的,中斷過程的步驟如下:
(從中斷資訊中)取得中斷型別碼
標誌暫存器的值入棧
設定標誌暫存器的第8位tf和第9位if的值為0
cs的內容入棧
ip內容如棧
從記憶體位址為中斷型別碼*4和中斷型別碼*4 +2的兩個字單元中讀取中斷處理程式的入口位址設定ip和cs
8.中斷處理程式常規步驟
儲存用到的暫存器
處理中斷
恢復用到的暫存器
用iret指令返回 pop ip;pop cs;popf
9.int n指令會引發n型別的中斷過程。
10.每個外設硬體都有一組可以由cpu讀寫的暫存器。cpu將這些暫存器都當作埠,對他們進行統一的編址,從而建立乙個統一埠的位址空間,每乙個埠在地中空間中都有乙個位址。
11.cpu可以直接讀寫以下三個地方的資料
cpu內部暫存器
記憶體單元
埠12.cpu通過指令in和out訪問埠,在in和out指令中,只能使用ax或al來存放從埠中讀入的資料或傳送到埠的資料。訪問8位埠用al,訪問16位埠用ax。
13.shl和shr分別為左移指令和右移指令。
將乙個暫存器或記憶體單元中的資料向左移位
將最後移除的一位寫入ce中
最低位用0補充
14.外部中斷分為可遮蔽中斷和不可遮蔽,遮蔽中斷會判斷if的值如果是零就禁止了其他中斷指令,也防止無線呼叫中斷進入死迴圈。
15.中斷程式感覺就像是乙個庫函式的介面函式,這些程式就是硬體驅動的介面函式吧,cpu通過中斷程式控制硬體,硬體也通過中斷程式占用cpu資源。這個需要繼續學習才能逐漸搞清楚這些概念。
組合語言 a 基礎知識
本專題是學習王爽的 組合語言 第三版 的學習筆記。這本書按照作者的意思是要教會讀者怎樣去循序漸進地學習組合語言。首先,什麼是組合語言呢?組合語言是人和計算機溝通的最直接方式,它描述了機器最終所要執行的指令序列。作為一門底層的語言,其可以直接與計算機進行互動。注意此書中如果沒有能夠完成檢測點的內容,則...
組合語言基礎知識
1.1機器語言 1.機器語言機器語言是機器指令的集合。2.cpu central processing unit,處理單元 cpu是一種微處理器,由於硬體設計和內部結構的不同,就需要不同的電平脈衝來控制使它工作,所以每一種微處理器都有自己的機器指令集,也就是機器語言。1.2組合語言的產生 1.例如,...
組合語言 基礎知識
組合語言是直接在硬體之上工作的程式語言,首先要了解硬體系統的結構,才能有效的應用組合語言對程式設計。機器語言就是機器指令的集合 機器指令展開來講就是一台機器可以正確執行的指令 主體是彙編的指令,機器指令便於記憶的書寫格式。彙編指令是機器指令的助記符 暫存器簡單的說是cpu中可以儲存資料的器件,乙個c...