确定指令占用的位数

时间:2014-07-10 12:22:04

标签: math assembly architecture computer-science

问题陈述

您正在为新型计算机设计指令集。该计算机有60条指令,16个通用寄存器。它支持高达27MB的字节可寻址内存。回答以下问题 (a)对于仅使用寄存器寻址模式的3操作数指令,指令应该多长(位数)? (b)对于4操作数指令,其中一个操作数是具有直接寻址模式的存储单元,指令应该有多长(位数)?

我想为a部分,你只需做2 ^ x> = 60并从那里做一个log_2来确定指令的x。类似地,对于通用寄存器,2 ^ x> = 16。我不确定3操作数指令和4操作数指令之间的区别是什么,以及这是如何影响总位数的。另外,我不确定如何导出表示存储器位置所需的位。答案是(a)只有6(从第一个日志开始)+4(从第二个日志开始)= 10比特需要表示什么?

1 个答案:

答案 0 :(得分:0)

首先,该指令由一个操作码和3个作为寄存器的操作数组成。因此,所需的位将是6(OPCode)+ 3(指令中的3个寄存器)x 4(由于有16个寄存器,我们需要4位来表示它们。)=> 18位+ 1位或更多位(用于操作数或操作码信息)

对于第二个,因为问题表明它是一个4操作数指令而另一个是内存操作数,我们需要找到寻址内存操作数所需的位。 由于我们可以解决高达27 MB的问题,因此我们可以将这些位分为2 ^ 5(对于27),2 ^ 20(对于1M)和2 ^ 3(对于字节)=>内存操作数本身的28位。对于其余的位,计算仍然类似 因此,我们将比特总和为28 + 6 + 4 + 4 + 4 => 46位+ 1位或更多位(用于操作数或操作码信息)

希望它能解决你的问题