我在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列中的错误:““循环完成时””不是有效的整数常量或标签
/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列错误:在符号表中找不到符号“消息”。
/Users/shivanshsuhane/Desktop/while_loop.asm第3行第2列错误:在符号表中找不到符号“空格”。
组装:操作已完成,但有错误。
我期望一个整数列表,直到10,并用逗号分隔。
答案 0 :(得分:1)
使用message:
和space:
将标签与指令分开。
MARS的内置汇编程序不会以其他方式解析它;我认为如果没有message
使其成为标签,它将:
视为指令。
我在MARS中尝试过,我可以在没有:
字符的情况下重现您的错误。这确实可以很好地组装:
.data
message: .asciiz "While loop completed"
space: .asciiz " ,"