mirror of
https://github.com/foxsen/archbase.git
synced 2026-04-24 10:33:54 +08:00
initial import to public repository
This commit is contained in:
26
materials/chapter2/switch_case_chain.S
Normal file
26
materials/chapter2/switch_case_chain.S
Normal file
@@ -0,0 +1,26 @@
|
||||
st:
|
||||
addi.w $t0,$r0,14
|
||||
beq $a0,$t0,.L7 //(a==14)?
|
||||
blt $t0,$a0,.L3 //(a>14)?
|
||||
addi.w $t0,$r0,10
|
||||
beq $a0,$t0,.L4 //(a==10)?
|
||||
addi.w $t0,$r0,12
|
||||
beq $a0,$t0,.L5 //(a==12)?
|
||||
jr $ra //return a
|
||||
.L3:
|
||||
addi.w $t0,$r0,15
|
||||
beq $a0,$t0,.L6 //(a==15)?
|
||||
addi.w $t0,$r0,17
|
||||
beq $a0,$t0,.L5 //(a==17)?
|
||||
jr $ra //return a
|
||||
.L6:
|
||||
andi $a2,$a1,0xf //b & 0xf
|
||||
.L4:
|
||||
addi.w $a0,$a2,50 //c + 50
|
||||
jr $ra
|
||||
.L5:
|
||||
addi.w $a0,$a1,50 //b + 50
|
||||
jr $ra
|
||||
.L7:
|
||||
or $a0,$a1,$r0 //return b
|
||||
jr $ra
|
||||
Reference in New Issue
Block a user