MIPS Beq加/减开关

MIPS Beq加/减开关,mips,Mips,我是MIPS的新手,尝试找出分支和交换机。我要做的就是将开关0设置为加法,将开关1设置为减法。有人能帮我解释一下我做错了什么,因为我看的每一段视频都没有帮助。每次我运行之前的程序时,它所做的就是反复运行add:开关 li $a0, 2 li $a1, 1 main: li $s0, 0xf0100000 li $s1, 0b00000001 li $s2, 0b00000010 start: lw $t0, 0($s0) beq <------ This

我是MIPS的新手,尝试找出分支和交换机。我要做的就是将开关0设置为加法,将开关1设置为减法。有人能帮我解释一下我做错了什么,因为我看的每一段视频都没有帮助。每次我运行之前的程序时,它所做的就是反复运行add:开关

li $a0, 2
li $a1, 1

main:
li $s0, 0xf0100000
li $s1, 0b00000001
li $s2, 0b00000010

start:
lw $t0, 0($s0)
beq                <------ This is what I don't understand
nop

add:
addu $v0, $a0, $a1
j start
nop

subtract:
subu $v0, $a0, $a1
j start
nop
li$a0,2
李$a1,1
主要内容:
李$s0,0xf0100000
li$s10B00000001
li$s2,0b00000010
开始:
lw$t0,0$s0

beq那代码不会汇编,因为beq需要3个操作数,而你没有提供。我理解。我所做的代码只运行add开关,根本不包含减法,因此我没有写出来。您将使用什么来包含这两个值呢?只需根据要比较的某个值执行条件跳转。至于为什么
add
处的代码会反复运行;这仅仅是因为没有什么可以阻止它这么做。你永远不会终止你的程序。