数字计算机有一个每字32位的存储器单元。指令集 由150个不同的操作组成。所有指令都有一个操作代码部分 (操作码),寄存器操作数部分(指定10个不同寄存器之一)和存储器 操作数地址部分。每条指令都存储在一个存储器字中。
(d)该计算机的指令是否可以使用(i)两个存储器操作数和(ii) 两个寄存器操作数?如果可以,解释如何;如果不能,请解释原因。
我真的不确定这个问题。我认为第一部分的答案是如果指定的寄存器包含一个存储器地址并且指令类似于ADD,则指令使用两个存储器操作数?或者我不理解这个问题?
至于(ii),我觉得答案必须是它可以,但我不知道它是如何完成的,也不知道如何寻找答案。 编辑:答案很简单,寄存器操作数可以放在指令的内存操作数部分吗?
答案 0 :(得分:2)
从指令编码开始,每个指令占用的位数为32位,8位用于编码指令/操作,4位用于编码寄存器,其余20位用于编码存储器中的地址。 / p>
鉴于上述情况,我认为没有理由不能使用ADD,OR,MOV,XCHG等指令来操作2个存储器操作数,这些操作数的地址在这20位中,寄存器由那些其他4位。
同样,我认为没有理由寄存器不能驻留在主存储器中,而是由指令的4位字段或指令的20位字段中的适当地址选择。存在许多CPU,其寄存器没有与主存储器分开的存储器,只是主存储器的固定位置。
如上所述,问题是允许肯定是两个问题的答案。