【问题标题】:Computer architecture homework - instruction operands计算机体系结构作业 - 指令操作数
【发布时间】:2012-03-28 11:12:27
【问题描述】:

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

(d) 用于这台计算机的指令是否可以使用 (i) 两个内存操作数和 (ii) 两个寄存器操作数?如果可以,请说明方法;如果不能,请解释为什么不能。

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

至于(ii),我觉得答案一定是可以,但是不知道是怎么做到的,也不知道怎么去寻找答案。 编辑:答案仅仅是可以将寄存器操作数放在指令的内存操作数部分吗?

【问题讨论】:

    标签: architecture cpu instruction-set


    【解决方案1】:

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

    鉴于上述情况,我认为没有理由不能使用诸如 ADD、OR、MOV、XCHG 等指令来操作 2 个内存操作数,这些操作数的地址在这 20 位中,而寄存器由其他 4 位。

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

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

    【讨论】:

    • 非常感谢。您的解释非常清楚,我可以从中推断出我的困惑。
    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    相关资源
    最近更新 更多