我已经看到直接按名称访问的全局变量,例如在以下视频中:
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,这解决了我的问题。