在 MARS 中制作 while 循环程序时出错“.asciiz 不是有效的整数常量或标签”

Error while making a while loop program in MARS ".asciiz is not a valid integer constant or label"

我在 Mac(已安装 jdk)上将 MARS 下载到 运行 一些 MIPS 代码,但我收到一个奇怪的错误:“.asciiz 不是有效整数常量或标签。

我正在学习本教程: https://www.youtube.com/watch?v=0aexcR9CNcE

我尝试通过更改引号来调试它(也许这样可以解决问题?)并在互联网上查找类似的错误。

.data
    message .asciiz "While loop completed"
    space .asciiz " ,"

.text
main:
#i=0

addi $t0, $zero, 1

while:
    bgt $t0, 10, exit
    jal printNumber
    addi $t0, $t0, 1    #i++

    j while         #jump back to the while loop

exit:
li $v0, 4
la $a0, message
syscall



#end of program 
li $v0, 10 
syscall

printNumber:
    li $v0, 1
    add $a0, $t0, $zero
    syscall

    li $v0, 4
    la $a0, space
    syscall

    jr $ra

这是我得到的:

/Users/shivanshsuhane/Desktop/while_loop.asm 第 2 行第 10 列中的错误:“.asciiz”不是有效的整数常量或标签

/Users/shivanshsuhane/Desktop/while_loop.asm 第 2 行第 18 列中的错误:“"While loop completed"”不是有效的整数常量或标签

/Users/shivanshsuhane/Desktop/while_loop.asm 第 3 行第 8 列中的错误:“.asciiz”不是有效的整数常量或标签

/Users/shivanshsuhane/Desktop/while_loop.asm 第 3 行第 16 列中的错误:“”,“”不是有效的整数常量或标签

/Users/shivanshsuhane/Desktop/while_loop.asm 第 2 行第 2 列中的错误:在符号 table.

中找不到符号 "message"

/Users/shivanshsuhane/Desktop/while_loop.asm 第 3 行第 2 列中的错误:在符号 table.

中找不到符号 "space"

Assemble: 操作完成但有错误。

我希望得到 10 以内的整数列表,用逗号分隔。

使用message:space:将标签与指令分开。

MARS 的 built-in assembler 不会解析它;如果没有 : 使其成为标签,我认为它将 message 视为指令。

我在 MARS 中尝试过,我可以在没有 : 字符的情况下重现您的错误。这 assemble 很好:

.data
    message: .asciiz "While loop completed"
    space:   .asciiz " ,"