在 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 " ,"
我在 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 " ,"