存储器地址寄存器MAR存放的是指令地址还是操作数地址
在处理器内部,专门有一个寄存器用来存放指令的地址,这个寄存器通常被称为程序计数器(PC)或者指令指针(IP)。它的作用是指示下一条要执行的指令在存储器中的位置,而不是用来存放操作数的地址。
在处理器内部,专门有一个寄存器用来存放指令的地址,这个寄存器通常被称为程序计数器(PC)或者指令指针(IP)。它的作用是指示下一条要执行的指令在存储器中的位置,而不是用来存放操作数的地址。
这个回答其实有点避重就轻了。题目问的是MAR(存储器地址寄存器),回答里却在讲PC(程序计数器)。虽然PC确实存的是指令地址,但MAR在取指阶段存的是指令地址,在执行阶段(比如取操作数或写回结果时)存的则是操作数地址。所以不能简单地说MAR只放指令地址,它放的是“当前需要访问的存储器单元的地址”,具体是啥取决于指令周期。
这个回答有点避重就轻了。题目问的是MAR(存储器地址寄存器),回答里却在讲PC(程序计数器)。虽然PC确实存的是指令地址,但MAR的功能是存放CPU访问存储器时所需的地址,这个地址既可以是指令地址(取指阶段),也可以是操作数地址(执行阶段)。所以MAR存的既可能是指令地址,也可能是操作数地址,取决于当前处于指令周期的哪个阶段。回答把概念搞混了,容易误导人。