Add: binary search test source code
This commit is contained in:
parent
a0a1b26b83
commit
ffa137da41
|
@ -0,0 +1,130 @@
|
|||
/*
|
||||
* 0:zero, 1:ra, 2:sp, 3:gp, 4:tp, 5:t0-2, 8:s0/fp
|
||||
* 9:s1, 10:a0-7, 18:s2-11, 28:t3-6
|
||||
*/
|
||||
|
||||
li sp, 0
|
||||
j test
|
||||
|
||||
binary_search:
|
||||
sw ra, 4(sp)
|
||||
sw a1, 8(sp)
|
||||
sw s0, 12(sp)
|
||||
sw s1, 16(sp)
|
||||
sw s2, 20(sp)
|
||||
sw s3, 24(sp)
|
||||
sw s4, 28(sp)
|
||||
sw s5, 32(sp)
|
||||
addi sp, sp, 32
|
||||
add s1, a1, zero
|
||||
add s2, a2, zero
|
||||
add s3, a3, zero
|
||||
li s4, 0
|
||||
addi s5, s2, 0
|
||||
li s0, -1
|
||||
binary_search_loop_start:
|
||||
add s0, s4, s5
|
||||
srl s0, s0, 1
|
||||
ble s5, s4, binary_search_loop_end
|
||||
sll t0, s0, 2
|
||||
add t0, t0, s1
|
||||
lw t1, 0(t0)
|
||||
blt t1, s3, binary_search_lower_compute
|
||||
beq t1, s3, binary_search_loop_end
|
||||
addi s5, s0, 0
|
||||
j binary_search_loop_start
|
||||
binary_search_lower_compute:
|
||||
addi s4, s0, 1
|
||||
j binary_search_loop_start
|
||||
binary_search_loop_end:
|
||||
add a0, s0, zero
|
||||
lw s5, -0(sp)
|
||||
lw s4, -4(sp)
|
||||
lw s3, -8(sp)
|
||||
lw s2, -12(sp)
|
||||
lw s1, -16(sp)
|
||||
lw s0, -20(sp)
|
||||
lw a1, -24(sp)
|
||||
lw ra, -28(sp)
|
||||
addi sp, sp, -32
|
||||
jalr ra, ra, 0
|
||||
|
||||
test:
|
||||
li a1, 40
|
||||
li a2, 1
|
||||
sw a2, 0(a1)
|
||||
li a2, 3
|
||||
sw a2, 4(a1)
|
||||
li a2, 4
|
||||
sw a2, 8(a1)
|
||||
li a2, 7
|
||||
sw a2, 12(a1)
|
||||
li a2, 10
|
||||
sw a2, 16(a1)
|
||||
li a2, 11
|
||||
sw a2, 20(a1)
|
||||
li a2, 16
|
||||
sw a2, 24(a1)
|
||||
li a2, 7
|
||||
li a3, 0
|
||||
jal ra, binary_search
|
||||
nop # R[10]=0
|
||||
li a3, 1
|
||||
jal ra, binary_search
|
||||
nop # R[10]=0
|
||||
li a3, 2
|
||||
jal ra, binary_search
|
||||
nop # R[10]=1
|
||||
li a3, 4
|
||||
jal ra, binary_search
|
||||
nop # R[10]=2
|
||||
li a3, 10
|
||||
jal ra, binary_search
|
||||
nop # R[10]=4
|
||||
li a3, 16
|
||||
jal ra, binary_search
|
||||
nop # R[10]=6
|
||||
li a3, 25
|
||||
jal ra, binary_search
|
||||
nop # R[10]=7
|
||||
li a2, 11
|
||||
sw a2, 0(a1)
|
||||
li a2, 32
|
||||
sw a2, 4(a1)
|
||||
li a2, 45
|
||||
sw a2, 8(a1)
|
||||
li a2, 74
|
||||
sw a2, 12(a1)
|
||||
li a2, 102
|
||||
sw a2, 16(a1)
|
||||
li a2, 112
|
||||
sw a2, 20(a1)
|
||||
li a2, 166
|
||||
sw a2, 24(a1)
|
||||
li a2, 356
|
||||
sw a2, 28(a1) # MEM[17]=356
|
||||
li a2, 8
|
||||
li a3, 0
|
||||
jal ra, binary_search
|
||||
nop # R[10]=0
|
||||
li a3, 11
|
||||
jal ra, binary_search
|
||||
nop # R[10]=0
|
||||
li a3, 22
|
||||
jal ra, binary_search
|
||||
nop # R[10]=1
|
||||
li a3, 45
|
||||
jal ra, binary_search
|
||||
nop # R[10]=2
|
||||
li a3, 102
|
||||
jal ra, binary_search
|
||||
nop # R[10]=4
|
||||
li a3, 166
|
||||
jal ra, binary_search
|
||||
nop # R[10]=6
|
||||
li a3, 167
|
||||
jal ra, binary_search
|
||||
nop # R[10]=7
|
||||
li a3, 500
|
||||
jal ra, binary_search
|
||||
nop # R[10]=8
|
Loading…
Reference in New Issue