单选题 下面有关程序计数器(PC)的叙述中,错误的是______。
  • A.每条指令执行后,PC的值都会被改变
  • B.PC的值由CPU在执行指令过程中进行修改
  • C.条件转移指令时,PC的值总是修改为转移目标指令的地址
  • D.PC的位数一般和存储器地址寄存器(MAR)的位数一样
【正确答案】 C
【答案解析】[解析] 当执行指令(包括转移指令)时,CPU将自动修改。PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址,故A正确。 在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的内存单元地址送入PC。当执行指令时,CPU将自动修改PC内容,使其保存的总是将要执行的下一条指令的地址,故B正确。 当执行到转移指令时,对于无条件转移或调用、返回等指令,则PC的值直接修改为目标指令地址;对于条件转移(分支)指令,则必须根据前面指令或当前指令执行的结果标志,确定是把转移目标地址还是把下一条指令地址送到PC。所以转移指令时,PC的值并不总是直接修改为转移目标指令的地址,故C错误。 程序计数器的位数取决于CPU能够访问的程序存储空间的大小,一般情况下为主存储器,所以程序计数器的位数与主存储器地址的位数相等,而主存储器地址取决于主存储器的容量。也就是说,程序计数器(PC)的位数跟存储器地址寄存器(MAR)的位数相等,所以D正确。