【问题标题】:how to allocate memory to store register number?如何分配内存来存储寄存器号?
【发布时间】:2014-03-10 05:00:31
【问题描述】:

我了解到指定 64 个寄存器中的一个的寄存器字段需要 6 位。

因为 64 = 26

但我们不必考虑最右边的位吗?即 20,在这种情况下,我们需要 7 位来指定 64 个寄存器中的一个..

【问题讨论】:

  • 7 位为您提供 128 范围。如果你只有 64 个寄存器,那么 7 位地址对于你所拥有的来说太大了,让你指定不存在的寄存器......你是什么意思“考虑最右边的位”?你在考虑一个有符号的 6 位值吗?

标签: memory-management 32-bit memory-address instruction-set


【解决方案1】:

如果只有一个可能的值,则根本不需要位。如果你有一个位,它有两个可能的值。

因此,如果只有一个寄存器,则根本不需要任何位来选择它。如果有两个寄存器,则需要一个位 - 该位中的零可以选择一个寄存器,另一个选择一个。

继续,如果你有两个位,它们有四个可能的值。如果您有三位,则它们有八个可能的值。往上走,6 位有 64 个可能的值,所以从 64 个寄存器中选择一个就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多