MIPS program is Not working Error: Symbol exit not found in the table
MIPS program is Not working Error: Symbol exit not found in the table
.text
main:
检查用户输入的第二个值是否小于零,如果是则退出程序
blez $t1, exit
接受用户的第一个输入
la,$a0,InputValone
li,$v0,4
syscall
li,$v0,5
move $t0,$v0
syscall
接受用户的第二个输入
la,$a0,InputValTwo
li $v0,4
syscall
li $v0,5
move $v0,$t1
syscall
将两个输入相乘
mul $t2,$t1,$t0
move $t3,$t0
loop:
beq $t2,$t3, endloop #if $t2==$t3, end the program
add $t3,$t3,$t0 #else $t3=$t3+$t0
b loop
la $a0,OutputValue
li $v0,4
syscall
move $a0,$t3
li $v0,1
syscall
endloop:
.data
InputValone: .asciiz "Enter Your First Value : "
InputValTwo: .asciiz "Enter Your Second Value : "
OutputValue: .asciiz "Output is : "
endloop:
.data
你真的不想这样做吗??
使用像 blez $t1, exit
或 beq $t2,$t3, endloop
这样的跳转指令跳转到一个标签。
显然缺少 exit:
标签。
endloop:
标签后面的指令未定义:
普通编译器(对于真正的 MIPS CPUs,而不是 MIPS 仿真器)会在代码部分的最后一条指令和 .data
部分之间插入一些虚拟字节 - 就像那样:
endloop:
.word some_dummy_data
.word some_dummy_data
.word some_dummy_data
.word some_dummy_data
.word some_dummy_data
...
.data
CPU 会将这些字节解释为指令并执行它们...
您必须添加 exit:
标签和 ll have to add code after the
endloop:` 标签:
exit:
endloop:
li $v0,<value that exits the program>
syscall
不了解你的模拟器,我无法告诉你 v0
退出程序的正确值。对于 Linux/MIPS,v0=4001
的值将是合适的...
.text
main:
检查用户输入的第二个值是否小于零,如果是则退出程序
blez $t1, exit
接受用户的第一个输入
la,$a0,InputValone
li,$v0,4
syscall
li,$v0,5
move $t0,$v0
syscall
接受用户的第二个输入
la,$a0,InputValTwo
li $v0,4
syscall
li $v0,5
move $v0,$t1
syscall
将两个输入相乘
mul $t2,$t1,$t0
move $t3,$t0
loop:
beq $t2,$t3, endloop #if $t2==$t3, end the program
add $t3,$t3,$t0 #else $t3=$t3+$t0
b loop
la $a0,OutputValue
li $v0,4
syscall
move $a0,$t3
li $v0,1
syscall
endloop:
.data
InputValone: .asciiz "Enter Your First Value : "
InputValTwo: .asciiz "Enter Your Second Value : "
OutputValue: .asciiz "Output is : "
endloop: .data
你真的不想这样做吗??
使用像 blez $t1, exit
或 beq $t2,$t3, endloop
这样的跳转指令跳转到一个标签。
显然缺少 exit:
标签。
endloop:
标签后面的指令未定义:
普通编译器(对于真正的 MIPS CPUs,而不是 MIPS 仿真器)会在代码部分的最后一条指令和 .data
部分之间插入一些虚拟字节 - 就像那样:
endloop:
.word some_dummy_data
.word some_dummy_data
.word some_dummy_data
.word some_dummy_data
.word some_dummy_data
...
.data
CPU 会将这些字节解释为指令并执行它们...
您必须添加 exit:
标签和 ll have to add code after the
endloop:` 标签:
exit:
endloop:
li $v0,<value that exits the program>
syscall
不了解你的模拟器,我无法告诉你 v0
退出程序的正确值。对于 Linux/MIPS,v0=4001
的值将是合适的...