2012-03-12 114 views
1

数字计算机具有每字32位的存储单元。指令集 由150个不同的操作组成。所有的指令都有一个操作码部分 (操作码),一个寄存器操作数部分(指定10个不同的寄存器之一)和一个存储器操作数地址部分。每条指令都存储在一个内存中。 (d)该计算机的指令可以使用(i)两个内存操作数和(ii)两个寄存器操作数吗?如果可以的话,解释一下;如果不能,解释为什么不。计算机体系结构作业 - 指令操作数

我真的不确定这个问题。我认为第一部分的答案是,如果指定的寄存器包含一个存储器地址并且该指令类似于ADD,那么一条指令将使用两个存储器操作数?或者我不理解这个问题? (ii),我觉得答案一定是它可以,但我不确定它是如何完成的,不知道如何搜索答案。 编辑:答案只是一个寄存器操作数可以放在指令的内存操作数部分吗?

回答

2

从指令编码开始,它遵循每条指令占用的32位,8位用于编码指令/操作,4位用于编码寄存器,其余20位用于编码内存中的地址。

鉴于上述情况,我没有看到为什么不能有ADD,OR,MOV,XCHG等等操作2个存储器操作数的指令,这些操作数的地址在那20位中并且所选择的寄存器通过那些其他4位。

同样,我没有看到为什么寄存器不能驻留在主存储器中,并且可以通过指令的4位字段或指令的20位字段中的相应地址进行选择。有许多CPU的寄存器没有独立于主存储器的存储器,而只是主存储器的固定位置。

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

+0

非常感谢。你的解释非常清楚,我可以推断出我对它的困惑。 – mavix 2012-03-12 03:14:47