程序計數(shù)器
程序計數(shù)器Program counter是指具有計數(shù)功能的指令地址寄存器,表示程序運行時下一條要執(zhí)行的指令的地址,也叫指令計數(shù)器。當執(zhí)行一條已有指令時,作為指令地址寄存器的程序計數(shù)器必須已經(jīng)改變到下一條指令的地址,這樣程序才能繼續(xù)運行。
概況定義
程序計數(shù)器是計算機處理器中的一個寄存器,它包含當前正在執(zhí)行的指令的地址(位置)每取出一條指令,程序計數(shù)器的存儲地址就加1。取出每條指令后,程序計數(shù)器指向序列中的下一條指令。當計算機重新啟動或復位時,程序計數(shù)器通常歸零。

馮·諾依曼的主要內容之一的計算機體系結構是“該程序預先存儲并由計算機自動執(zhí)行”由處理器執(zhí)行的程序(指令序列)它們以二進制碼序列的形式預存于計算機的內存中,處理器將這些碼逐個取入處理器進行解碼、執(zhí)行,完成整個程序的執(zhí)行。為了保證程序能夠連續(xù)執(zhí)行,CPU必須有某種手段來確定下一條指令的地址。程序計數(shù)器(PC)它扮演著這個角色,所以它經(jīng)常被稱為‘指令計數(shù)器’
在程序開始執(zhí)行之前,將程序指令序列的起始地址,即程序的第一條指令所在的存儲單元的地址發(fā)送給PC機,CPU根據(jù)PC機的指令從存儲器中讀取第一條指令(取指)當執(zhí)行一條指令時,CPU自動修改PC的內容,即每執(zhí)行一條指令,PC就增加一個等于指令中包含的字節(jié)數(shù)的量(指令字節(jié)數(shù)),以便PC總是指向要提取的下一個指令地址。因為大多數(shù)指令是按順序執(zhí)行的,所以修改PC的過程通常只是簡單地添加到PC中“指令字節(jié)數(shù)”
程序轉移時,轉移指令執(zhí)行的最終結果是改變PC的值,也就是目的地址。處理器總是指PC、譯碼、執(zhí)行,從而實現(xiàn)程序轉移。
R15在ARM處理器中作為PC使用,總是指向取指單元,ARM處理器中只有一個PC寄存器,所有模式共用。R15的寬度為32位(下面的標簽是R15[(31:0),表示R15的‘第31位’到‘第0位',ARM處理器可以直接尋址4GB地址空間(2^32=4G)

