📜  门| GATE-CS-2016(套装2)|第 41 题

📅  最后修改于: 2021-09-24 05:22:19             🧑  作者: Mango

考虑一个具有 64 个寄存器和一个大小为 12 的指令集的处理器。每条指令有五个不同的字段,即操作码、两个源寄存器标识符、一个目标寄存器标识符和一个 12 位立即数。每条指令都必须以字节对齐的方式存储在内存中。如果程序有 100 条指令,则程序文本消耗的内存量(以字节为单位)是____________

[请注意,这原本是一个填空题]
(一) 100
(乙) 200
(C) 400
(四) 500答案: (D)
说明:一条指令分为五个部分,

  • (1) : 操作码- 因为我们有大小为 12 的指令集,所以指令操作码可以用 4 位来标识,因为 2^4=16,我们不能再少了。
  • (2) & (3) : 两个源寄存器标识符- 因为总共有 64 个寄存器,所以它们可以用 6 位来标识。因为它们是两个,即 6 位 + 6 位。
  • (4) : 一个目标寄存器标识符 – 同样是 6 位。
  • (5) : 12 位立即数 – 12 位。

把我们得到的都加起来,

= 4 + 6 + 6 + 6 + 12 
= 34 bit 
= 34/8 byte 
= 4.25 byte 

正如给定的每条指令必须以字节对齐的方式存储在内存中,4.25不是字节对齐,内存地址应该是0、1、2、3、4、5、6、7……所以应该是5字节。

由于有 100 条指令,我们的大小为 5*100=500 字节。

因此 (D) 500 是答案。
这个问题的测验