回覆列表
  • 1 # 使用者7715875998885

      8086CPU的中斷系統具有256箇中斷,每個中斷用一個唯一的中斷向量號標識。向量號也稱為向量號或型別號,它用一個位元組表示:0——255,對應256箇中斷。8086的中斷可以分成外部中斷和內部中斷兩類。

      (1)外部中斷

      外部中斷是來自8086CPU之外的原因引起的程式中斷。它又分成兩種情況:

      ·可遮蔽中斷——外部的這個中斷請求可以在CPU的內部被遮蔽掉,即CPU可以控制它是否引起程式中斷。標誌暫存器中的中斷允許標誌IF就是用於控制可遮蔽中斷的。

      ·非遮蔽中斷——外部的這個中斷請求不能在CPU的內部被遮蔽,CPU必須執行它的處理程式。8086為非遮蔽中斷分配了中斷向量號02。

      (2)內部中斷

      內部中斷是由於8086CPU內部執行程式引起的程式中斷。它又分成多種情況:

      ·除法錯中斷——在執行除法指令時,若除數為0或商超過了暫存器所能表達的範圍,則產生除法錯中斷。8086為它分配的向量號為0。

      ·指令中斷——執行中斷呼叫指令INTn就產生指令中斷,也稱為軟體中斷,它的向量號就是n。

      INTn指令為2位元組指令(機器碼為11001101—n—,第2個位元組就是中斷向量號n),但向量號為3的指令中斷(INT3)是1位元組指令(11001100),較特殊,常用做程式除錯的斷點中斷。

      除錯程式DEBUG中的G命令就是利用斷點中斷(3號中斷)中止被除錯程式的。使用DEBUG除錯程式時,如果在程式段最後加上一條INT3指令,就可以停止程式執行,而不必設定斷點了。

      ·溢位中斷——在執行溢位中斷指令INTO時,若溢位標誌OF為1,則產生溢位中斷。它的向量號為4。

      ·單步中斷——若單步標誌TF為1,則在每條指令執行結束後都產生單步中斷。它的向量號為1。

      除錯程式DEBUG中的T命令就利用了單步中斷。

  • 中秋節和大豐收的關聯?
  • 關於古代的山莊的描寫?