【问题标题】:MIPS: What's the size of integer constants in MIPS?MIPS:MIPS 中整数常量的大小是多少?
【发布时间】:2016-06-22 11:01:23
【问题描述】:

我的问题是:MIPS 中整数常量的大小是多少?

Here我发现了它们是如何使用的。

如果我在我的数据段中定义了这样一个常量并且我想 计算数据段的大小,我为此取什么大小 常量:字、字节、一半、..的大小?

这是一个数据段示例:

.data
array: .word 1, 2, 3
LEN = 2                ; Here's the constant

数据段大小为:3 * 32(bit) + ?(bit)

提前谢谢你!

【问题讨论】:

    标签: mips mips32 spim


    【解决方案1】:

    我假设您将 constants 称为 "equates"

    常量不占用数据段中的空间,每当用作操作数时,它们将被其表达式替换,并且大小应与操作数的大小匹配,因此在您的示例中,数据段将使用 4*3 字节 = 12 字节(96 位)。

    例如,如果您在 MARS 模拟器中编写代码

    .data
     array: .word 1,2,3
    .eqv LEN 2
    .eqv LARGE_VALUE 20000
     buffer: .space LARGE_VALUE
    

    然后您可以使用标识符LEN 代替2,例如

     li $a1, LEN
     li $a2, LARGE_VALUE
    

    在这种情况下,在汇编第一条指令时,LEN 将是 16 位立即数,而汇编器将发出代码来为第二条伪指令执行 32 位加载。数据段中定义的缓冲区将是 20000 字节(由 eqv LARGE_VALUE 定义)

    【讨论】:

      猜你喜欢
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      相关资源
      最近更新 更多