This commit is contained in:
unlockable
2024-07-12 21:08:05 +08:00
parent 6fc70b789d
commit 234a19037f
7 changed files with 941 additions and 0 deletions

343
23sort_nums.asm Normal file
View File

@@ -0,0 +1,343 @@
.text
#initialize $sp
lui $sp, 0x4000
addi $sp, $sp, 0x7ff
# load digit to mem
lui $s0, 0x4000
addi $s0, $s0, 0x20
#0
addi $s1, $zero, 0x3f
sw $s1, 0($s0)
#1
addi $s1, $zero, 0x6
sw $s1, 4($s0)
#2
addi $s1, $zero, 0x5b
sw $s1, 8($s0)
#3
addi $s1, $zero, 0x4f
sw $s1, 12($s0)
#4
addi $s1, $zero, 0x66
sw $s1, 16($s0)
#5
addi $s1, $zero, 0x6d
sw $s1, 20($s0)
#6
addi $s1, $zero, 0x7d
sw $s1, 24($s0)
#7
addi $s1, $zero, 0x7
sw $s1, 28($s0)
#8
addi $s1, $zero, 0x7f
sw $s1, 32($s0)
#9
addi $s1, $zero, 0x6f
sw $s1, 36($s0)
#A
addi $s1, $zero, 0x77
sw $s1, 40($s0)
#B
addi $s1, $zero, 0x7c
sw $s1, 44($s0)
#C
addi $s1, $zero, 0x58
sw $s1, 48($s0)
#D
addi $s1, $zero, 0x5e
sw $s1, 52($s0)
#E
addi $s1, $zero, 0x79
sw $s1, 56($s0)
#F
addi $s1, $zero, 0x71
sw $s1, 60($s0)
# save the numbers to be sorted
lui $s0, 0x4000
addi $s0, $s0, 0x60
addi $s1, $zero, 0x4b8d
sw $s1, 0($s0)
addi $s1, $zero, 0x2307
sw $s1, 4($s0)
addi $s1, $zero, 0xfae0
sw $s1, 8($s0)
addi $s1, $zero, 0x7815
sw $s1, 12($s0)
addi $s1, $zero, 0xc105
sw $s1, 16($s0)
addi $s1, $zero, 0x84f0
sw $s1, 20($s0)
addi $s1, $zero, 0xdb6
sw $s1, 24($s0)
addi $s1, $zero, 0xf21d
sw $s1, 28($s0)
addi $s1, $zero, 0xe97a
sw $s1, 32($s0)
addi $s1, $zero, 0xa3b6
sw $s1, 36($s0)
addi $s1, $zero, 0x8466
sw $s1, 40($s0)
addi $s1, $zero, 0x3a25
sw $s1, 44($s0)
addi $s1, $zero, 0x5df
sw $s1, 48($s0)
addi $s1, $zero, 0xd2de
sw $s1, 52($s0)
addi $s1, $zero, 0xba7a
sw $s1, 56($s0)
addi $s1, $zero, 0x7809
sw $s1, 60($s0)
addi $s1, $zero, 0xf6a8
sw $s1, 64($s0)
addi $s1, $zero, 0x361d
sw $s1, 68($s0)
addi $s1, $zero, 0x3adb
sw $s1, 72($s0)
addi $s1, $zero, 0x969a
sw $s1, 76($s0)
main:
addi $a0, $zero, 20
jal insertion_sort
lui $s0, 0x4000
# s1 = 0x40000010
addi $s1, $s0, 0x10
# s0 = 0x40000060
addi $s0, $s0, 0x60
display_numbers_loop:
addi $s2, $zero, 0
addi $s3, $zero, 20
display_single_number:
sll $t0, $s2, 2
add $t0, $s0, $t0
lw $a0, 0($t0)
addi $a1, $s1, 0
jal display_number
addi $s2, $s2, 1
sub $t0, $s3, $s2
bgtz $t0, display_single_number
jal display_empty
j display_numbers_loop
# ------------------------------------------------------
# a0 is the number to be displayed, a1 is the bcd control addr
display_number:
addi $sp, $sp, -32
sw $ra, 4($sp)
sw $s0, 8($sp)
sw $s1, 12($sp)
sw $s2, 16($sp)
sw $s3, 20($sp)
sw $s4, 24($sp)
sw $s5, 28($sp)
sw $s6, 32($sp)
# s0 is the number to be displayed
addi $s0, $a0, 0
# s1 is the bcd_control addr
addi $s1, $a1, 0
# s2 is the base addr for display digit
lui $s2, 0x4000
addi $s2, $s2, 0x20
# s3 is the counter for a complete scan of 4 digit
# addi $s3, $zero, 0x17c4
addi $s3, $zero, 0xbe2
all_digit_scan_loop:
# s4 is the num being shifted gradually
addi $s4, $s0, 0
# s6 is the enable digit
addi $s6, $zero, 0x100
addi $s5, $zero, 4
single_digit_loop:
# get a digit
andi $t0, $s4, 0xf
# digit * 4 is the memory shift
sll $t0, $t0, 2
add $t0, $s2, $t0
lw $t0, 0($t0)
or $t0, $t0, $s6
sw $t0, 0($s1)
srl $s4, $s4, 4
sll $s6, $s6, 1
addi $t0, $zero, 0x400
wait_time_loop:
addi $t0, $t0, -1
bgtz $t0, wait_time_loop
addi $s5, $s5, -1
bgtz $s5, single_digit_loop
# end of single digit loop
# ** depends on the clock **
# four digit, 328.68us.
# 1s / 328.68us = 3042 = (be2)hex
addi $s3, $s3, -1
bgtz $s3, all_digit_scan_loop
lw $ra, 4($sp)
lw $s0, 8($sp)
lw $s1, 12($sp)
lw $s2, 16($sp)
lw $s3, 20($sp)
lw $s4, 24($sp)
lw $s5, 28($sp)
lw $s6, 32($sp)
addi $sp, $sp, 32
jr $ra
display_empty:
lui $t0, 0x4000
addi $t0, $t0, 0x10
sw $zero, 0($t0)
lui $t0, 0x100
display_empty_wait_loop:
addi $t0, $t0, -1
bgtz $t0, display_empty_wait_loop
jr $ra
# a0 is the total number of numbers needed to be sorted
insertion_sort:
addi $sp, $sp, -12
sw $ra, 4($sp)
sw $s0, 8($sp)
sw $s1, 12($sp)
# la $t0, num_N
# lw $s0, 0($t0) # n in s0
addi $s0, $a0, 0
# li $s1, 1 # i in s1
addi $s1, $zero, 1
item_loop:
# bge $s1, $s0, done_item_loop # if i >= n, done loop
sub $t0, $s0, $s1
blez $t0, done_item_loop
li $a0, 0
addi $a1, $s1, -1
move $a2, $s1
jal binary_search
move $a0, $v0
move $a1, $s1
jal insert
addi $s1, $s1, 1 # i ++
j item_loop
done_item_loop:
lw $ra, 4($sp)
lw $s0, 8($sp)
lw $s1, 12($sp)
addi $sp, $sp, 12
jr $ra
binary_search: # a0: left, a1: right, a2: i
addi $sp, $sp, -20
sw $s0, 4($sp)
sw $s1, 8($sp)
sw $s2, 12($sp)
sw $s3, 16($sp)
sw $ra, 20($sp)
# ble $a0, $a1, in_boundary_binary_search # left <= right, in normal position
sub $t0, $a0, $a1
blez $t0, in_boundary_binary_search
# move $v0, $a0 # now in boundary condition
add $v0, $a0, $zero
j done_binary_search
in_boundary_binary_search:
move $s0, $a0 # in normal situation
move $s1, $a1
move $s2, $a2
add $s3, $s0, $s1 # s3 = mid = (left + right) >> 1
srl $s3, $s3, 1
# jal add_compare_count
# la $t0, num_buff
lui $t0, 0x4000
addi $t0, $t0, 0x60
sll $t1, $s3, 2
add $t1, $t1, $t0
lw $t1, 0($t1) # t1 = v[mid]
sll $t2, $s2, 2
add $t2, $t2, $t0
lw $t2, 0($t2) # t2 = v[n]
# ble $t1, $t2, binary_search_right # v[mid] <= v[n], jump to 'else'
sub $t0, $t1, $t2
blez $t0, binary_search_right
binary_search_left:
addi $a1, $s3, -1
jal binary_search
j done_binary_search
binary_search_right:
addi $a0, $s3, 1
jal binary_search
done_binary_search:
lw $s0, 4($sp)
lw $s1, 8($sp)
lw $s2, 12($sp)
lw $s3, 16($sp)
lw $ra, 20($sp)
addi $sp, $sp, 20
jr $ra
insert: # $a0: int k, $a1: int n
addi $sp, $sp, -12
sw $s0, 4($sp)
sw $s1, 8($sp)
sw $ra, 12($sp)
# la $s0, num_buff # s0 = &v[0]
lui $s0, 0x4000
addi $s0, $s0, 0x60
sll $t0, $a1, 2
add $s2, $s0, $t0
lw $s2, 0($s2) # s2 = tmp = 'pivot' = v[n]
addi $s1, $a1, -1 # s1 = i = n - 1
insert_loop:
# blt $s1, $a0, done_insert_loop # i < k, done loop
sub $t0, $s1, $a0
bltz $t0, done_insert_loop
sll $t0, $s1, 2
add $t0, $s0, $t0 # t0 = &v[i]
lw $t1, 0($t0)
sw $t1, 4($t0)
addi $s1, $s1, -1 # i--
j insert_loop
done_insert_loop:
sll $t0, $a0, 2
add $t0, $s0, $t0
sw $s2, 0($t0) # t0 = &v[k]
lw $s0, 4($sp)
lw $s1, 8($sp)
lw $ra, 12($sp)
addi $sp, $sp, 12
jr $ra

251
23sort_nums.txt Normal file
View File

@@ -0,0 +1,251 @@
20'd0: instruction <= 32'h3c1d4000;
20'd1: instruction <= 32'h23bd07ff;
20'd2: instruction <= 32'h3c104000;
20'd3: instruction <= 32'h22100020;
20'd4: instruction <= 32'h2011003f;
20'd5: instruction <= 32'hae110000;
20'd6: instruction <= 32'h20110006;
20'd7: instruction <= 32'hae110004;
20'd8: instruction <= 32'h2011005b;
20'd9: instruction <= 32'hae110008;
20'd10: instruction <= 32'h2011004f;
20'd11: instruction <= 32'hae11000c;
20'd12: instruction <= 32'h20110066;
20'd13: instruction <= 32'hae110010;
20'd14: instruction <= 32'h2011006d;
20'd15: instruction <= 32'hae110014;
20'd16: instruction <= 32'h2011007d;
20'd17: instruction <= 32'hae110018;
20'd18: instruction <= 32'h20110007;
20'd19: instruction <= 32'hae11001c;
20'd20: instruction <= 32'h2011007f;
20'd21: instruction <= 32'hae110020;
20'd22: instruction <= 32'h2011006f;
20'd23: instruction <= 32'hae110024;
20'd24: instruction <= 32'h20110077;
20'd25: instruction <= 32'hae110028;
20'd26: instruction <= 32'h2011007c;
20'd27: instruction <= 32'hae11002c;
20'd28: instruction <= 32'h20110058;
20'd29: instruction <= 32'hae110030;
20'd30: instruction <= 32'h2011005e;
20'd31: instruction <= 32'hae110034;
20'd32: instruction <= 32'h20110079;
20'd33: instruction <= 32'hae110038;
20'd34: instruction <= 32'h20110071;
20'd35: instruction <= 32'hae11003c;
20'd36: instruction <= 32'h3c104000;
20'd37: instruction <= 32'h22100060;
20'd38: instruction <= 32'h20114b8d;
20'd39: instruction <= 32'hae110000;
20'd40: instruction <= 32'h20112307;
20'd41: instruction <= 32'hae110004;
20'd42: instruction <= 32'h3c010000;
20'd43: instruction <= 32'h3421fae0;
20'd44: instruction <= 32'h00018820;
20'd45: instruction <= 32'hae110008;
20'd46: instruction <= 32'h20117815;
20'd47: instruction <= 32'hae11000c;
20'd48: instruction <= 32'h3c010000;
20'd49: instruction <= 32'h3421c105;
20'd50: instruction <= 32'h00018820;
20'd51: instruction <= 32'hae110010;
20'd52: instruction <= 32'h3c010000;
20'd53: instruction <= 32'h342184f0;
20'd54: instruction <= 32'h00018820;
20'd55: instruction <= 32'hae110014;
20'd56: instruction <= 32'h20110db6;
20'd57: instruction <= 32'hae110018;
20'd58: instruction <= 32'h3c010000;
20'd59: instruction <= 32'h3421f21d;
20'd60: instruction <= 32'h00018820;
20'd61: instruction <= 32'hae11001c;
20'd62: instruction <= 32'h3c010000;
20'd63: instruction <= 32'h3421e97a;
20'd64: instruction <= 32'h00018820;
20'd65: instruction <= 32'hae110020;
20'd66: instruction <= 32'h3c010000;
20'd67: instruction <= 32'h3421a3b6;
20'd68: instruction <= 32'h00018820;
20'd69: instruction <= 32'hae110024;
20'd70: instruction <= 32'h3c010000;
20'd71: instruction <= 32'h34218466;
20'd72: instruction <= 32'h00018820;
20'd73: instruction <= 32'hae110028;
20'd74: instruction <= 32'h20113a25;
20'd75: instruction <= 32'hae11002c;
20'd76: instruction <= 32'h201105df;
20'd77: instruction <= 32'hae110030;
20'd78: instruction <= 32'h3c010000;
20'd79: instruction <= 32'h3421d2de;
20'd80: instruction <= 32'h00018820;
20'd81: instruction <= 32'hae110034;
20'd82: instruction <= 32'h3c010000;
20'd83: instruction <= 32'h3421ba7a;
20'd84: instruction <= 32'h00018820;
20'd85: instruction <= 32'hae110038;
20'd86: instruction <= 32'h20117809;
20'd87: instruction <= 32'hae11003c;
20'd88: instruction <= 32'h3c010000;
20'd89: instruction <= 32'h3421f6a8;
20'd90: instruction <= 32'h00018820;
20'd91: instruction <= 32'hae110040;
20'd92: instruction <= 32'h2011361d;
20'd93: instruction <= 32'hae110044;
20'd94: instruction <= 32'h20113adb;
20'd95: instruction <= 32'hae110048;
20'd96: instruction <= 32'h3c010000;
20'd97: instruction <= 32'h3421969a;
20'd98: instruction <= 32'h00018820;
20'd99: instruction <= 32'hae11004c;
20'd100: instruction <= 32'h20040014;
20'd101: instruction <= 32'h0c0000a6;
20'd102: instruction <= 32'h3c104000;
20'd103: instruction <= 32'h22110010;
20'd104: instruction <= 32'h22100060;
20'd105: instruction <= 32'h20120000;
20'd106: instruction <= 32'h20130014;
20'd107: instruction <= 32'h00124080;
20'd108: instruction <= 32'h02084020;
20'd109: instruction <= 32'h8d040000;
20'd110: instruction <= 32'h22250000;
20'd111: instruction <= 32'h0c000075;
20'd112: instruction <= 32'h22520001;
20'd113: instruction <= 32'h02724022;
20'd114: instruction <= 32'h1d00fff8;
20'd115: instruction <= 32'h0c00009f;
20'd116: instruction <= 32'h08000069;
20'd117: instruction <= 32'h23bdffe0;
20'd118: instruction <= 32'hafbf0004;
20'd119: instruction <= 32'hafb00008;
20'd120: instruction <= 32'hafb1000c;
20'd121: instruction <= 32'hafb20010;
20'd122: instruction <= 32'hafb30014;
20'd123: instruction <= 32'hafb40018;
20'd124: instruction <= 32'hafb5001c;
20'd125: instruction <= 32'hafb60020;
20'd126: instruction <= 32'h20900000;
20'd127: instruction <= 32'h20b10000;
20'd128: instruction <= 32'h3c124000;
20'd129: instruction <= 32'h22520020;
20'd130: instruction <= 32'h20130be2;
20'd131: instruction <= 32'h22140000;
20'd132: instruction <= 32'h20160100;
20'd133: instruction <= 32'h20150004;
20'd134: instruction <= 32'h3288000f;
20'd135: instruction <= 32'h00084080;
20'd136: instruction <= 32'h02484020;
20'd137: instruction <= 32'h8d080000;
20'd138: instruction <= 32'h01164025;
20'd139: instruction <= 32'hae280000;
20'd140: instruction <= 32'h0014a102;
20'd141: instruction <= 32'h0016b040;
20'd142: instruction <= 32'h20080400;
20'd143: instruction <= 32'h2108ffff;
20'd144: instruction <= 32'h1d00fffe;
20'd145: instruction <= 32'h22b5ffff;
20'd146: instruction <= 32'h1ea0fff3;
20'd147: instruction <= 32'h2273ffff;
20'd148: instruction <= 32'h1e60ffee;
20'd149: instruction <= 32'h8fbf0004;
20'd150: instruction <= 32'h8fb00008;
20'd151: instruction <= 32'h8fb1000c;
20'd152: instruction <= 32'h8fb20010;
20'd153: instruction <= 32'h8fb30014;
20'd154: instruction <= 32'h8fb40018;
20'd155: instruction <= 32'h8fb5001c;
20'd156: instruction <= 32'h8fb60020;
20'd157: instruction <= 32'h23bd0020;
20'd158: instruction <= 32'h03e00008;
20'd159: instruction <= 32'h3c084000;
20'd160: instruction <= 32'h21080010;
20'd161: instruction <= 32'had000000;
20'd162: instruction <= 32'h3c080100;
20'd163: instruction <= 32'h2108ffff;
20'd164: instruction <= 32'h1d00fffe;
20'd165: instruction <= 32'h03e00008;
20'd166: instruction <= 32'h23bdfff4;
20'd167: instruction <= 32'hafbf0004;
20'd168: instruction <= 32'hafb00008;
20'd169: instruction <= 32'hafb1000c;
20'd170: instruction <= 32'h20900000;
20'd171: instruction <= 32'h20110001;
20'd172: instruction <= 32'h02114022;
20'd173: instruction <= 32'h19000009;
20'd174: instruction <= 32'h24040000;
20'd175: instruction <= 32'h2225ffff;
20'd176: instruction <= 32'h00113021;
20'd177: instruction <= 32'h0c0000bc;
20'd178: instruction <= 32'h00022021;
20'd179: instruction <= 32'h00112821;
20'd180: instruction <= 32'h0c0000e1;
20'd181: instruction <= 32'h22310001;
20'd182: instruction <= 32'h080000ac;
20'd183: instruction <= 32'h8fbf0004;
20'd184: instruction <= 32'h8fb00008;
20'd185: instruction <= 32'h8fb1000c;
20'd186: instruction <= 32'h23bd000c;
20'd187: instruction <= 32'h03e00008;
20'd188: instruction <= 32'h23bdffec;
20'd189: instruction <= 32'hafb00004;
20'd190: instruction <= 32'hafb10008;
20'd191: instruction <= 32'hafb2000c;
20'd192: instruction <= 32'hafb30010;
20'd193: instruction <= 32'hafbf0014;
20'd194: instruction <= 32'h00854022;
20'd195: instruction <= 32'h19000002;
20'd196: instruction <= 32'h00801020;
20'd197: instruction <= 32'h080000da;
20'd198: instruction <= 32'h00048021;
20'd199: instruction <= 32'h00058821;
20'd200: instruction <= 32'h00069021;
20'd201: instruction <= 32'h02119820;
20'd202: instruction <= 32'h00139842;
20'd203: instruction <= 32'h3c084000;
20'd204: instruction <= 32'h21080060;
20'd205: instruction <= 32'h00134880;
20'd206: instruction <= 32'h01284820;
20'd207: instruction <= 32'h8d290000;
20'd208: instruction <= 32'h00125080;
20'd209: instruction <= 32'h01485020;
20'd210: instruction <= 32'h8d4a0000;
20'd211: instruction <= 32'h012a4022;
20'd212: instruction <= 32'h19000003;
20'd213: instruction <= 32'h2265ffff;
20'd214: instruction <= 32'h0c0000bc;
20'd215: instruction <= 32'h080000da;
20'd216: instruction <= 32'h22640001;
20'd217: instruction <= 32'h0c0000bc;
20'd218: instruction <= 32'h8fb00004;
20'd219: instruction <= 32'h8fb10008;
20'd220: instruction <= 32'h8fb2000c;
20'd221: instruction <= 32'h8fb30010;
20'd222: instruction <= 32'h8fbf0014;
20'd223: instruction <= 32'h23bd0014;
20'd224: instruction <= 32'h03e00008;
20'd225: instruction <= 32'h23bdfff4;
20'd226: instruction <= 32'hafb00004;
20'd227: instruction <= 32'hafb10008;
20'd228: instruction <= 32'hafbf000c;
20'd229: instruction <= 32'h3c104000;
20'd230: instruction <= 32'h22100060;
20'd231: instruction <= 32'h00054080;
20'd232: instruction <= 32'h02089020;
20'd233: instruction <= 32'h8e520000;
20'd234: instruction <= 32'h20b1ffff;
20'd235: instruction <= 32'h02244022;
20'd236: instruction <= 32'h05000006;
20'd237: instruction <= 32'h00114080;
20'd238: instruction <= 32'h02084020;
20'd239: instruction <= 32'h8d090000;
20'd240: instruction <= 32'had090004;
20'd241: instruction <= 32'h2231ffff;
20'd242: instruction <= 32'h080000eb;
20'd243: instruction <= 32'h00044080;
20'd244: instruction <= 32'h02084020;
20'd245: instruction <= 32'had120000;
20'd246: instruction <= 32'h8fb00004;
20'd247: instruction <= 32'h8fb10008;
20'd248: instruction <= 32'h8fbf000c;
20'd249: instruction <= 32'h23bd000c;
20'd250: instruction <= 32'h03e00008;

251
23sort_nums_mars.txt Normal file
View File

@@ -0,0 +1,251 @@
3c1d4000
23bd07ff
3c104000
22100020
2011003f
ae110000
20110006
ae110004
2011005b
ae110008
2011004f
ae11000c
20110066
ae110010
2011006d
ae110014
2011007d
ae110018
20110007
ae11001c
2011007f
ae110020
2011006f
ae110024
20110077
ae110028
2011007c
ae11002c
20110058
ae110030
2011005e
ae110034
20110079
ae110038
20110071
ae11003c
3c104000
22100060
20114b8d
ae110000
20112307
ae110004
3c010000
3421fae0
00018820
ae110008
20117815
ae11000c
3c010000
3421c105
00018820
ae110010
3c010000
342184f0
00018820
ae110014
20110db6
ae110018
3c010000
3421f21d
00018820
ae11001c
3c010000
3421e97a
00018820
ae110020
3c010000
3421a3b6
00018820
ae110024
3c010000
34218466
00018820
ae110028
20113a25
ae11002c
201105df
ae110030
3c010000
3421d2de
00018820
ae110034
3c010000
3421ba7a
00018820
ae110038
20117809
ae11003c
3c010000
3421f6a8
00018820
ae110040
2011361d
ae110044
20113adb
ae110048
3c010000
3421969a
00018820
ae11004c
20040014
0c0000a6
3c104000
22110010
22100060
20120000
20130014
00124080
02084020
8d040000
22250000
0c000075
22520001
02724022
1d00fff8
0c00009f
08000069
23bdffe0
afbf0004
afb00008
afb1000c
afb20010
afb30014
afb40018
afb5001c
afb60020
20900000
20b10000
3c124000
22520020
20130be2
22140000
20160100
20150004
3288000f
00084080
02484020
8d080000
01164025
ae280000
0014a102
0016b040
20080400
2108ffff
1d00fffe
22b5ffff
1ea0fff3
2273ffff
1e60ffee
8fbf0004
8fb00008
8fb1000c
8fb20010
8fb30014
8fb40018
8fb5001c
8fb60020
23bd0020
03e00008
3c084000
21080010
ad000000
3c080100
2108ffff
1d00fffe
03e00008
23bdfff4
afbf0004
afb00008
afb1000c
20900000
20110001
02114022
19000009
24040000
2225ffff
00113021
0c0000bc
00022021
00112821
0c0000e1
22310001
080000ac
8fbf0004
8fb00008
8fb1000c
23bd000c
03e00008
23bdffec
afb00004
afb10008
afb2000c
afb30010
afbf0014
00854022
19000002
00801020
080000da
00048021
00058821
00069021
02119820
00139842
3c084000
21080060
00134880
01284820
8d290000
00125080
01485020
8d4a0000
012a4022
19000003
2265ffff
0c0000bc
080000da
22640001
0c0000bc
8fb00004
8fb10008
8fb2000c
8fb30010
8fbf0014
23bd0014
03e00008
23bdfff4
afb00004
afb10008
afbf000c
3c104000
22100060
00054080
02089020
8e520000
20b1ffff
02244022
05000006
00114080
02084020
8d090000
ad090004
2231ffff
080000eb
00044080
02084020
ad120000
8fb00004
8fb10008
8fbf000c
23bd000c
03e00008

16
create_random_num.py Normal file
View File

@@ -0,0 +1,16 @@
import random
numbers = list()
for _ in range(20):
numbers.append(random.randint(0, 65535))
with open("gen_num.txt", "w") as fl:
fl.writelines([hex(x) + "\n" for x in numbers])
with open("gen_num_asm.txt", "w") as fl:
for idx, num in enumerate(numbers):
fl.write("addi $s1, $zero, %s\nsw $s1, %d($s0)\n" % (hex(num), 4 * idx))
with open("gen_num_sorted.txt", "w") as fl:
fl.writelines([hex(x) + "\n" for x in sorted(numbers)])

20
gen_num.txt Normal file
View File

@@ -0,0 +1,20 @@
0x4b8d
0x2307
0xfae0
0x7815
0xc105
0x84f0
0xdb6
0xf21d
0xe97a
0xa3b6
0x8466
0x3a25
0x5df
0xd2de
0xba7a
0x7809
0xf6a8
0x361d
0x3adb
0x969a

40
gen_num_asm.txt Normal file
View File

@@ -0,0 +1,40 @@
addi $s1, $zero, 0x4b8d
sw $s1, 0($s0)
addi $s1, $zero, 0x2307
sw $s1, 4($s0)
addi $s1, $zero, 0xfae0
sw $s1, 8($s0)
addi $s1, $zero, 0x7815
sw $s1, 12($s0)
addi $s1, $zero, 0xc105
sw $s1, 16($s0)
addi $s1, $zero, 0x84f0
sw $s1, 20($s0)
addi $s1, $zero, 0xdb6
sw $s1, 24($s0)
addi $s1, $zero, 0xf21d
sw $s1, 28($s0)
addi $s1, $zero, 0xe97a
sw $s1, 32($s0)
addi $s1, $zero, 0xa3b6
sw $s1, 36($s0)
addi $s1, $zero, 0x8466
sw $s1, 40($s0)
addi $s1, $zero, 0x3a25
sw $s1, 44($s0)
addi $s1, $zero, 0x5df
sw $s1, 48($s0)
addi $s1, $zero, 0xd2de
sw $s1, 52($s0)
addi $s1, $zero, 0xba7a
sw $s1, 56($s0)
addi $s1, $zero, 0x7809
sw $s1, 60($s0)
addi $s1, $zero, 0xf6a8
sw $s1, 64($s0)
addi $s1, $zero, 0x361d
sw $s1, 68($s0)
addi $s1, $zero, 0x3adb
sw $s1, 72($s0)
addi $s1, $zero, 0x969a
sw $s1, 76($s0)

20
gen_num_sorted.txt Normal file
View File

@@ -0,0 +1,20 @@
0x5df
0xdb6
0x2307
0x361d
0x3a25
0x3adb
0x4b8d
0x7809
0x7815
0x8466
0x84f0
0x969a
0xa3b6
0xba7a
0xc105
0xd2de
0xe97a
0xf21d
0xf6a8
0xfae0