1. 程式人生 > >程式計數器和指令指標暫存器

程式計數器和指令指標暫存器

CS和IP是8086CPU中兩個最關鍵的暫存器,它們指示了CPU當前要讀取指令的地址。CS為程式碼段暫存器,IP為指令指標暫存器,從名稱上我們可以看出它們和指令的關係。

在8086PC機中,任意時刻,設CS中的內容為M,IP中的內容為N,8086CPU將從記憶體M 16+N單元開始,讀取一條指令並執行。

也可以這樣表述:8086機中,任意時刻,CPU將CS:IP指向的內容當作指令執行。


x86 系統中自增的是 IP,用 CS:IP 組合表示正在執行的指令地址,此時 PC 只是一個概念上的說法。在 ARM 體系中 R15 就是 PC,當然 ARM 和 IA-32、x64 都支援高階記憶體管理,所以「PC」的內容未必是當前指令在記憶體中的絕對位置。


當計算機系統上電開機或者按了機箱上的復位按鈕時,CPU會自動把程式碼段暫存器CS設定為0XF000,其段基地址則被設定為
0XFFFF 0000,段長度設定為64K。而IP則設定為0XFFF0,因此此時CPU程式碼指標指向0XFFFF FFF0處,即4G空間的最後一個64K的最後16位元組處