New Hardware Git
This commit is contained in:
341
CPU/Flow/mips-cpu-logisim-master/test/benchmark.asm
Normal file
341
CPU/Flow/mips-cpu-logisim-master/test/benchmark.asm
Normal file
@@ -0,0 +1,341 @@
|
||||
#############################################################
|
||||
#<EFBFBD><EFBFBD><EFBFBD><EFBFBD>j,jal,jrָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ɷֿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>15<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> revise date 2015/12/17 tiger
|
||||
#############################################################
|
||||
.text
|
||||
addi $s1,$zero, 1 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD>j,jal,jrָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ɷֿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>15<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
j jmp_next1
|
||||
addi $s1,$zero, 1
|
||||
addi $s2,$zero, 2
|
||||
addi $s3,$zero, 3
|
||||
jmp_next1:
|
||||
j jmp_next2
|
||||
addi $s1,$zero, 1
|
||||
addi $s2,$zero, 2
|
||||
addi $s3,$zero, 3
|
||||
jmp_next2:
|
||||
j jmp_next3
|
||||
addi $s1,$zero, 1
|
||||
addi $s2,$zero, 2
|
||||
addi $s3,$zero, 3
|
||||
jmp_next3:
|
||||
j jmp_next4
|
||||
addi $s1,$zero, 1
|
||||
addi $s2,$zero, 2
|
||||
addi $s3,$zero, 3
|
||||
jmp_next4:jal jmp_count
|
||||
|
||||
######################################
|
||||
|
||||
|
||||
#<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ҫ֧<EFBFBD>ֳ<EFBFBD>addi,sll,add,syscall,srl,sll,sra,beq,j,syscall revise date:2015/12/16 tiger
|
||||
|
||||
.text
|
||||
addi $s0,$zero,1 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD>ʼֵ1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1λ<EFBFBD>ظ<EFBFBD>15<EFBFBD>ε<EFBFBD>ֵ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>ֵ
|
||||
addi $s1,$zero,1
|
||||
sll $s1, $s1, 31 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>31λ $s1=0x80000000
|
||||
|
||||
|
||||
###################################################################
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>
|
||||
# <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ0x80000000 0x20000000 0x08000000 0x02000000 0x00800000 0x00200000 0x00080000 0x00020000 0x00008000 0x00002000 0x00000800 0x00000200 0x00000080 0x00000020 0x00000008 0x00000002 0x00000000
|
||||
###################################################################
|
||||
LogicalRightShift: #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ1<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>
|
||||
|
||||
add $a0,$0,$s1 #display $s1 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ1<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
srl $s1, $s1, 2
|
||||
beq $s1, $zero, shift_next1
|
||||
j LogicalRightShift
|
||||
|
||||
shift_next1:
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
|
||||
###################################################################
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>
|
||||
# <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ0x00000004 0x00000010 0x00000040 0x00000100 0x00000400 0x00001000 0x00004000 0x00010000 0x00040000 0x00100000 0x00400000 0x01000000 0x04000000 0x10000000 0x40000000 0x00000000
|
||||
###################################################################
|
||||
|
||||
addi $s1,$zero, 1 # <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>
|
||||
LogicalLeftShift: #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ1<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>
|
||||
sll $s1, $s1, 2
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
beq $s1, $zero, ArithRightShift
|
||||
j LogicalLeftShift
|
||||
|
||||
|
||||
###################################################################
|
||||
# <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>
|
||||
# <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ0x80000000 0xf0000000 0xff000000 0xfff00000 0xffff0000 0xfffff000 0xffffff00 0xfffffff0 0xffffffff
|
||||
###################################################################
|
||||
ArithRightShift: #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD>ԣ<EFBFBD>#<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>80000000<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾΪF0000000,FF000000,FFF00000,FFFF0000ֱ<EFBFBD><EFBFBD>FFFFFFFF
|
||||
|
||||
addi $s1,$zero,1 # <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>
|
||||
sll $s1, $s1, 31 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>31λ $s1=0x80000000
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
sra $s1, $s1, 3 #$s1=0X80000000-->0XF0000000
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
|
||||
sra $s1, $s1, 4 #0XF0000000-->0XFF000000
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
|
||||
sra $s1, $s1, 4 #0XFF000000-->0XFFF00000
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
sra $s1, $s1, 4
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
sra $s1, $s1, 4
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
|
||||
sra $s1, $s1, 4
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
|
||||
sra $s1, $s1, 4
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
|
||||
sra $s1, $s1, 4
|
||||
|
||||
|
||||
add $a0,$0,$s1 #display $s1
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
#############################################################
|
||||
#<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>addi,andi,sll,srl,sra,or,ori,nor,syscall LED<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#############################################################
|
||||
|
||||
.text
|
||||
addi $s0,$zero,1
|
||||
sll $s3, $s0, 31 # $s3=0x80000000
|
||||
sra $s3, $s3, 31 # $s3=0xFFFFFFFF
|
||||
addu $s0,$zero,$zero # $s0=0
|
||||
addi $s2,$zero,12
|
||||
|
||||
addiu $s6,$0,3 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>
|
||||
zmd_loop:
|
||||
|
||||
addiu $s0, $s0, 1 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
andi $s0, $s0, 15
|
||||
|
||||
#######################################
|
||||
addi $t0,$0,8
|
||||
addi $t1,$0,1
|
||||
left:
|
||||
|
||||
sll $s3, $s3, 4 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
or $s3, $s3, $s0
|
||||
|
||||
add $a0,$0,$s3 # display $s3
|
||||
addi $v0,$0,34 # system call for LED display
|
||||
syscall # display
|
||||
|
||||
sub $t0,$t0,$t1
|
||||
bne $t0,$0,left
|
||||
#######################################
|
||||
|
||||
addi $s0, $s0, 1 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
addi $t8,$0,15
|
||||
and $s0, $s0, $t8
|
||||
sll $s0, $s0, 28
|
||||
|
||||
addi $t0,$0,8
|
||||
addi $t1,$0,1
|
||||
|
||||
zmd_right:
|
||||
|
||||
srl $s3, $s3, 4 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
or $s3, $s3, $s0
|
||||
|
||||
addu $a0,$0,$s3 # display $s3
|
||||
addi $v0,$0,34 # system call for LED display
|
||||
syscall # display
|
||||
|
||||
sub $t0,$t0,$t1
|
||||
bne $t0,$0,zmd_right
|
||||
srl $s0, $s0, 28
|
||||
#######################################
|
||||
|
||||
sub $s6,$s6,$t1
|
||||
beq $s6,$0, exit
|
||||
j zmd_loop
|
||||
|
||||
exit:
|
||||
|
||||
add $t0,$0,$0
|
||||
nor $t0,$t0,$t0 #test nor ori
|
||||
sll $t0,$t0,16
|
||||
ori $t0,$t0,0xffff
|
||||
|
||||
addu $a0,$0,$t0 # display $t0
|
||||
addi $v0,$0,34 # system call for LED display
|
||||
syscall # display
|
||||
#################################################################################
|
||||
#<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>0-15<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>Ԫ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mars mips<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>뽫Mars Setting<EFBFBD>е<EFBFBD>Memory Configuration<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪCompact<EFBFBD><EFBFBD>data at address 0
|
||||
#
|
||||
#################################################################################
|
||||
.text
|
||||
sort_init:
|
||||
addi $s0,$0,-1
|
||||
addi $s1,$0,0
|
||||
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
sw $s0,0($s1)
|
||||
addi $s0,$s0,1
|
||||
addi $s1,$s1,4
|
||||
|
||||
addi $s0,$s0,1
|
||||
|
||||
add $s0,$zero,$zero
|
||||
addi $s1,$zero,60 #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
sort_loop:
|
||||
lw $s3,0($s0)
|
||||
lw $s4,0($s1)
|
||||
slt $t0,$s3,$s4
|
||||
beq $t0,$0,sort_next #<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
sw $s3, 0($s1)
|
||||
sw $s4, 0($s0)
|
||||
sort_next:
|
||||
addi $s1, $s1, -4
|
||||
bne $s0, $s1, sort_loop
|
||||
|
||||
add $a0,$0,$s0 #display $s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here. DISP: disp $r0, 0
|
||||
|
||||
addi $s0,$s0,4
|
||||
addi $s1,$zero,60
|
||||
bne $s0, $s1, sort_loop
|
||||
|
||||
addi $v0,$zero,50 # system call for exit
|
||||
syscall # we are out of here.
|
||||
#MIPS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>syscall
|
||||
|
||||
jmp_count: addi $s0,$zero, 0
|
||||
addi $s0,$s0, 1
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
addi $s0,$s0, 2
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
addi $s0,$s0, 3
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
addi $s0,$s0, 4
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
addi $s0,$s0, 5
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
addi $s0,$s0, 6
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
addi $s0,$s0, 7
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
addi $s0,$s0, 8
|
||||
add $a0,$0,$s0
|
||||
addi $v0,$0,34 # display hex
|
||||
addi $v0,$0,34 # display hex
|
||||
syscall # we are out of here.
|
||||
|
||||
|
||||
jr $31
|
||||
Reference in New Issue
Block a user