2012-05-14 28 views
0

其中PC(程序計數器)寄存器,我發現這些變化的所有可能性中:程序計數器改變

1) PC increases its value with loading new instruction 
2) with jumps and branches 
3) with calling subroutine 
4) with return from subroutine 

那些是全部還是我失去了一些東西?

我來自this article

回答

5

有幾個:

  • 硬件中斷改變PC執行中斷服務程序,然後返回到被中斷的程序。
  • 例外情況(除0或頁面錯誤之類的例外情況)以類似的方式改變PC。
  • 調試中斷也這樣做。
  • 系統調用(它們的調用和返回)也改變PC。
+0

..硬件中斷改變PC執行中斷服務程序,然後返回到一個不同的程序,而不是被中斷的程序。 –

+0

@MartinJames是的,一個被打斷的程序。他們都被打斷了。 –

0

我相信就是這樣,假設非局部跳轉被包含在2中(例如setjmp,longjmp)。