Architecture 计算机体系结构作业.指令操作数

Architecture 计算机体系结构作业.指令操作数,architecture,cpu,instruction-set,Architecture,Cpu,Instruction Set,数字计算机有一个每字32位的存储单元。指令集 由150个不同的操作组成。所有指令都有一个操作代码部分 (操作码)、寄存器操作数部分(指定10个不同寄存器中的一个)和内存 操作数地址部分。每条指令存储在一个字的内存中 (d) 此计算机的指令是否可以使用(i)两个内存操作数和(ii) 两个寄存器操作数?如果可以,说明如何进行;如果不能,请解释原因 我真的不确定这个问题。我认为第一部分的答案是,如果指定寄存器包含内存地址,并且指令类似于ADD,那么指令将使用两个内存操作数?还是我不明白这个问题 至于(

数字计算机有一个每字32位的存储单元。指令集 由150个不同的操作组成。所有指令都有一个操作代码部分 (操作码)、寄存器操作数部分(指定10个不同寄存器中的一个)和内存 操作数地址部分。每条指令存储在一个字的内存中

(d) 此计算机的指令是否可以使用(i)两个内存操作数和(ii) 两个寄存器操作数?如果可以,说明如何进行;如果不能,请解释原因

我真的不确定这个问题。我认为第一部分的答案是,如果指定寄存器包含内存地址,并且指令类似于ADD,那么指令将使用两个内存操作数?还是我不明白这个问题

至于(ii),我觉得答案一定是它可以,但我不确定它是如何做到的,也不知道如何寻找答案。
编辑:答案很简单,寄存器操作数可以放在指令的内存操作数部分吗?

从指令编码来看,每个指令占用的32位中,8位用于对指令/操作进行编码,4用于对寄存器进行编码,其余20用于对内存中的地址进行编码

综上所述,我看不出为什么不能有一条指令,如ADD、OR、MOV、XCHG等,来操作2个内存操作数,其地址在这20位中,寄存器由这4位选择

同样,我看不出为什么寄存器不能驻留在主存中,不能由指令的4位字段或指令的20位字段中的适当地址来选择。存在许多CPU,其寄存器没有与主存分开的存储,只是主存的固定位置


如上所述,这个问题允许两个问题的答案都是“是”。

非常感谢。你的解释非常清楚,我可以从中推断出我对什么感到困惑。