【问题标题】:How many bits will be available for the immediate value if there are 16 registers in the LC3如果 LC3 中有 16 个寄存器,有多少位可用于立即值
【发布时间】:2021-06-13 09:49:46
【问题描述】:

LC-3 有 16 个寄存器,每个 64 位长,32 位指令。对于 ADD 指令的立即数,有多少位可用?我知道表示每个寄存器所需的最小位数是 4(16 的对数基数 2),并且由于我有两个寄存器(要添加的目标和第一个寄存器),这将占 4 + 4 位。所以 32 - 4 - 4 - 1(指令中告诉我们将立即数和第一个寄存器中的内容相加的位)= 23。我可以假设 ADD 指令的操作码总是有 4 位吗?并执行 23-4 得到 19 作为我的答案?

【问题讨论】:

    标签: assembly computer-science cpu-architecture lc3


    【解决方案1】:

    你的数学是正确的。如果您需要在 32 位上编码单个源寄存器、目标寄存器、4 位操作码、立即数与寄存器信号,那么您还有 19 位用于立即数:

    32 - 4 - log_2(16) - log_2(16) - 1 = 19
    

    但是我不确定你从哪里得到你的号码。 LC-3 架构有 8 个 16 位寄存器和 16 位指令:

    16 - 4 - log_2(8) - log_2(8) - 1 = 5
    

    对于“我可以假设 ADD 指令的操作码总是有 4 位”,答案取决于您在说什么。无需做任何假设,LC-3 具有固定的 4 位操作码字段。但是,当对架构进行更改时(正如您对扩大的指令和寄存器文件提出的问题),可能会对操作码编码进行更改。

    【讨论】:

      【解决方案2】:

      不确定我们说的是同一台机器。 lc-3 有 8 个寄存器 R0,..,R7 它们是 16 位宽。内存组织为 64k 的 16 位宽。指令为 16 位宽。 与 immed 值相加是 ADD DR,SR,value 代码操作 4 位, DR 3 位, SR 3 位,1 位设置 immed 模式,这留下 5 位为 immed 值 2complement

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-23
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        相关资源
        最近更新 更多