如何在MIPS中访问全局变量



我已经看到直接按名称访问的全局变量,例如在以下视频中:

https://youtu.be/zs-tkzngdsk?list=pl5b07qlma3p6p6zuddf-o97ddddddddddfpvpfpfpfpfpfuna5a&t = 614

eg:

        .data
sum:    .word 0
        .text
        .globl  main
main:
        sw $a0, sum

这不会在火星4.2上为我编译,我会收到以下错误:

line 13 column 9: "sw": Too few or incorrectly formatted operands. Expected: sw $t1,-100($t2


我还曾在以下网站上看到使用的总和($ GP(:https://courses.cs.washington.edu/courses/cse378/02sp/sections/section/section3-2.html

所以我已经写了

        .data
sum:    .word 0
        .text
        .globl  main
main:
        lw $a0, sum($gp)

也无法编译,但带有此错误:

line 11 column 17: "sum": operand is of incorrect type

背景信息:
我正在写一个编译器。我知道我可以通过$ GP的字面偏移来访问全局变量,但是我试图避免需要所需的枚举和查找过程。请告诉我,我可以用名字访问它们,我只是在使用一些奇怪的火星。

我从火星4.2(我的学校迫使我们上学期使用(到火星4.5,这解决了我的问题。

最新更新