存储器地址寄存器MAR存放的是指令地址还是操作数地址

关于指令格式,二地址指令意味着指令中包含了两个地址信息。如果是单字长指令,其总长度通常为16位,因为一个字等于两个字节,也就是16位。而如果是双字长指令,整个指令的长度则会达到32位。

评论 (3)

这个回答好像有点跑题哦,问题问的是MAR寄存器到底存指令地址还是操作数地址,这属于计算机组成原理里存储器结构的基础知识。MAR主要存放的是当前CPU想要访问的存储器单元的地址,既可以是指令地址(取指阶段),也可以是数据/操作数地址(执行阶段)。但单纯说它存放“指令地址”或“操作数地址”都不全面,关键在于MAR在任一时刻存放的是哪一个地址,取决于CPU当前处于哪个操作周期。另外,后面关于二地址指令字长的讨论,虽然和指令格式有关,但跟MAR寄存器存放内容没有直接因果关系,容易误导初学者。

这回答感觉有点答非所问啊。MAR(存储器地址寄存器)存的既不是单纯的指令地址也不是操作数地址,而是当前CPU想要访问的存储单元的地址。取指阶段存的是指令地址,执行阶段可能存的是操作数地址。它就是个“中转站”,存放当前要读写的那一行的地址编号,具体是哪一行得看CPU当前处于哪个周期。

这个回答有点偏题了吧?题目问的是MAR寄存器到底存指令地址还是操作数地址,这是计算机组成原理的基础概念。MAR(存储器地址寄存器)在取指阶段存的是指令地址,在执行阶段存的是操作数地址。你倒好,扯什么二地址指令、单字长双字长,虽然也是指令格式相关的内容,但完全没回答核心问题,属于答非所问。