Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops MIPS模拟器。怎么了?程序不断循环并冻结模拟器_Loops_Mips_Procedure - Fatal编程技术网

Loops MIPS模拟器。怎么了?程序不断循环并冻结模拟器

Loops MIPS模拟器。怎么了?程序不断循环并冻结模拟器,loops,mips,procedure,Loops,Mips,Procedure,MIPS程序循环10次,并使用过程调用打印循环计数器 main: # initialize values to 2 registers addi $a1,$zero,10 # $s1= $zero+10 addi $a2,$zero,0 # $s2= $zero+0 jal AddMeth # call procedure # Print out the loop counter li $v0,1 # print integer add

MIPS程序循环10次,并使用过程调用打印循环计数器

main:
# initialize values to 2 registers
addi $a1,$zero,10     # $s1= $zero+10 
addi $a2,$zero,0      # $s2= $zero+0
jal AddMeth           # call procedure 
# Print out the loop counter
li $v0,1          # print integer
add $a0,$v1,$zero     # $a0 = $s2+$zero , load return value into argument
syscall  


AddMeth:
Loop:   beq $a1,$a2,Exit  # goto Exit if $s1=$s2
    addi $a2,$a2,1    # $s2 = $s2+1 
    j Loop        # goto Loop

Exit: 
add $v1,$zero,$s2
jr $ra
(模拟的)CPU不知道您的意思是让程序在
print integer
syscall之后终止。您需要明确地告诉它这就是您想要的,否则它将继续执行下一条指令(因此它将在无限循环中结束,在该循环中反复执行
AddMeth
,然后执行
print integer
syscall)

SPIM/MARS中的退出系统调用是第10个,即:

li $v0, 10
syscall


你似乎在几个地方混淆了
$a2
$s2

ya!新的使用MIPS模拟器。现在就知道了!谢谢你,伙计!