1
1
mirror of https://github.com/foxsen/archbase.git synced 2026-02-04 19:04:32 +08:00
Files
archbase/materials/chapter2/switch_case_chain.S
2021-10-27 19:14:51 +08:00

27 lines
492 B
ArmAsm

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