程序計(jì)數(shù)器
程序計(jì)數(shù)器Program counter是指具有計(jì)數(shù)功能的指令地址寄存器,表示程序運(yùn)行時(shí)下一條要執(zhí)行的指令的地址,也叫指令計(jì)數(shù)器。當(dāng)執(zhí)行一條已有指令時(shí),作為指令地址寄存器的程序計(jì)數(shù)器必須已經(jīng)改變到下一條指令的地址,這樣程序才能繼續(xù)運(yùn)行。

概況定義 編輯本段
程序計(jì)數(shù)器是計(jì)算機(jī)處理器中的一個(gè)寄存器,它包含當(dāng)前正在執(zhí)行的指令的地址(位置)每取出一條指令,程序計(jì)數(shù)器的存儲(chǔ)地址就加1。取出每條指令后,程序計(jì)數(shù)器指向序列中的下一條指令。當(dāng)計(jì)算機(jī)重新啟動(dòng)或復(fù)位時(shí),程序計(jì)數(shù)器通常歸零。
馮·諾依曼的主要內(nèi)容之一的計(jì)算機(jī)體系結(jié)構(gòu)是“該程序預(yù)先存儲(chǔ)并由計(jì)算機(jī)自動(dòng)執(zhí)行”由處理器執(zhí)行的程序(指令序列)它們以二進(jìn)制碼序列的形式預(yù)存于計(jì)算機(jī)的內(nèi)存中,處理器將這些碼逐個(gè)取入處理器進(jìn)行解碼、執(zhí)行,完成整個(gè)程序的執(zhí)行。為了保證程序能夠連續(xù)執(zhí)行,CPU必須有某種手段來確定下一條指令的地址。程序計(jì)數(shù)器(PC)它扮演著這個(gè)角色,所以它經(jīng)常被稱為‘指令計(jì)數(shù)器’
在程序開始執(zhí)行之前,將程序指令序列的起始地址,即程序的第一條指令所在的存儲(chǔ)單元的地址發(fā)送給PC機(jī),CPU根據(jù)PC機(jī)的指令從存儲(chǔ)器中讀取第一條指令(取指)當(dāng)執(zhí)行一條指令時(shí),CPU自動(dòng)修改PC的內(nèi)容,即每執(zhí)行一條指令,PC就增加一個(gè)等于指令中包含的字節(jié)數(shù)的量(指令字節(jié)數(shù)),以便PC總是指向要提取的下一個(gè)指令地址。因?yàn)榇蠖鄶?shù)指令是按順序執(zhí)行的,所以修改PC的過程通常只是簡(jiǎn)單地添加到PC中“指令字節(jié)數(shù)”
程序轉(zhuǎn)移時(shí),轉(zhuǎn)移指令執(zhí)行的最終結(jié)果是改變PC的值,也就是目的地址。處理器總是指PC、譯碼、執(zhí)行,從而實(shí)現(xiàn)程序轉(zhuǎn)移。
R15在ARM處理器中作為PC使用,總是指向取指單元,ARM處理器中只有一個(gè)PC寄存器,所有模式共用。R15的寬度為32位(下面的標(biāo)簽是R15[(31:0),表示R15的‘第31位’到‘第0位',ARM處理器可以直接尋址4GB地址空間(2^32=4G)
附件列表
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。