MIPS程序集:如何在.data部分声明整数值?

Bar*_*ney 8 assembly mips

我正试图用MIPS汇编语言使用MARS模拟器弄湿我的脚.

我现在的主要问题是如何初始化一组内存位置,以便稍后通过汇编语言指令访问它们?

例如,我想初始化地址0x1001000 - 0x10001003,其值为0x99,0x87,0x23,0x45.我认为这可以在我的汇编程序的数据声明(.data)部分完成,但我不确定语法.这可能吗?

或者,在.data部分中,如何指定将整数值存储在某个内存位置(我不在乎哪里,但我只想在某处引用它们).所以我正在寻找C等价于"int x = 20,y = 30,z = 90;" 我知道如何使用MIPS指令,但是可以在MIPS汇编程序的.data部分声明类似的内容吗?

Mic*_*zek 8

您通常不会初始化特定的内存位置; 每个部分(包括.data)都位于链接时,然后解析重定位

要对数据条目进行重定位,请选择一个名称并放在其name:前面,以便稍后通过名称引用它.您可以使用指定数据块.size value.例如:

.data
    x: .word 20
    y: .word 30
    z: .word 90
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用程序集中的标签:

.text
    lw $t0, x
Run Code Online (Sandbox Code Playgroud)