簡體   English   中英

發生中斷時x86架構會發生什么?

[英]What happens in the x86 architecture when an interrupt occurs?

我正在研究x86和實時系統,我有一個問題,那就是:

x86遵循哪些步驟來處理任何中斷?

發生中斷時,CPU執行以下操作:

  • 將當前地址(指令指針的內容)壓入堆棧; 另外,推送處理器標志(但不是所有其他處理器寄存器)
  • 跳轉到中斷描述符表中指定的ISR(中斷服務程序)的地址。

ISR應該做到以下幾點:

  • 推送它想要改變的任何寄存器(或推送所有寄存器)
  • 處理中斷
  • 重新啟用中斷
  • 彈出它推送的任何寄存器
  • 使用IRET指令,它會從堆棧中彈出CPU標志和指令指針值(從而返回到發生中斷時正在執行的任何操作)。

中斷描述符表開始 基本上,當發生中斷時,流控制會跳轉到此表,然后跳轉到此表中的任何內容。 此外,我相信一旦中斷發生,所有寄存器都會被推送,但我並不是100%肯定這一點,因為我已經處理了很長時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM