Simply display some empty.
This commit is contained in:
213
22display_num_in_mem_empty.asm
Normal file
213
22display_num_in_mem_empty.asm
Normal file
@@ -0,0 +1,213 @@
|
||||
.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
|
||||
165
22display_num_in_mem_empty.txt
Normal file
165
22display_num_in_mem_empty.txt
Normal file
@@ -0,0 +1,165 @@
|
||||
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'h3c104000;
|
||||
20'd102: instruction <= 32'h22110010;
|
||||
20'd103: instruction <= 32'h22100060;
|
||||
20'd104: instruction <= 32'h20120000;
|
||||
20'd105: instruction <= 32'h20130014;
|
||||
20'd106: instruction <= 32'h00124080;
|
||||
20'd107: instruction <= 32'h02084020;
|
||||
20'd108: instruction <= 32'h8d040000;
|
||||
20'd109: instruction <= 32'h22250000;
|
||||
20'd110: instruction <= 32'h0c000074;
|
||||
20'd111: instruction <= 32'h22520001;
|
||||
20'd112: instruction <= 32'h02724022;
|
||||
20'd113: instruction <= 32'h1d00fff8;
|
||||
20'd114: instruction <= 32'h0c00009e;
|
||||
20'd115: instruction <= 32'h08000068;
|
||||
20'd116: instruction <= 32'h23bdffe0;
|
||||
20'd117: instruction <= 32'hafbf0004;
|
||||
20'd118: instruction <= 32'hafb00008;
|
||||
20'd119: instruction <= 32'hafb1000c;
|
||||
20'd120: instruction <= 32'hafb20010;
|
||||
20'd121: instruction <= 32'hafb30014;
|
||||
20'd122: instruction <= 32'hafb40018;
|
||||
20'd123: instruction <= 32'hafb5001c;
|
||||
20'd124: instruction <= 32'hafb60020;
|
||||
20'd125: instruction <= 32'h20900000;
|
||||
20'd126: instruction <= 32'h20b10000;
|
||||
20'd127: instruction <= 32'h3c124000;
|
||||
20'd128: instruction <= 32'h22520020;
|
||||
20'd129: instruction <= 32'h20130be2;
|
||||
20'd130: instruction <= 32'h22140000;
|
||||
20'd131: instruction <= 32'h20160100;
|
||||
20'd132: instruction <= 32'h20150004;
|
||||
20'd133: instruction <= 32'h3288000f;
|
||||
20'd134: instruction <= 32'h00084080;
|
||||
20'd135: instruction <= 32'h02484020;
|
||||
20'd136: instruction <= 32'h8d080000;
|
||||
20'd137: instruction <= 32'h01164025;
|
||||
20'd138: instruction <= 32'hae280000;
|
||||
20'd139: instruction <= 32'h0014a102;
|
||||
20'd140: instruction <= 32'h0016b040;
|
||||
20'd141: instruction <= 32'h20080400;
|
||||
20'd142: instruction <= 32'h2108ffff;
|
||||
20'd143: instruction <= 32'h1d00fffe;
|
||||
20'd144: instruction <= 32'h22b5ffff;
|
||||
20'd145: instruction <= 32'h1ea0fff3;
|
||||
20'd146: instruction <= 32'h2273ffff;
|
||||
20'd147: instruction <= 32'h1e60ffee;
|
||||
20'd148: instruction <= 32'h8fbf0004;
|
||||
20'd149: instruction <= 32'h8fb00008;
|
||||
20'd150: instruction <= 32'h8fb1000c;
|
||||
20'd151: instruction <= 32'h8fb20010;
|
||||
20'd152: instruction <= 32'h8fb30014;
|
||||
20'd153: instruction <= 32'h8fb40018;
|
||||
20'd154: instruction <= 32'h8fb5001c;
|
||||
20'd155: instruction <= 32'h8fb60020;
|
||||
20'd156: instruction <= 32'h23bd0020;
|
||||
20'd157: instruction <= 32'h03e00008;
|
||||
20'd158: instruction <= 32'h3c084000;
|
||||
20'd159: instruction <= 32'h21080010;
|
||||
20'd160: instruction <= 32'had000000;
|
||||
20'd161: instruction <= 32'h3c080100;
|
||||
20'd162: instruction <= 32'h2108ffff;
|
||||
20'd163: instruction <= 32'h1d00fffe;
|
||||
20'd164: instruction <= 32'h03e00008;
|
||||
165
22display_num_in_mem_empty_mars.txt
Normal file
165
22display_num_in_mem_empty_mars.txt
Normal file
@@ -0,0 +1,165 @@
|
||||
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
|
||||
3c104000
|
||||
22110010
|
||||
22100060
|
||||
20120000
|
||||
20130014
|
||||
00124080
|
||||
02084020
|
||||
8d040000
|
||||
22250000
|
||||
0c000074
|
||||
22520001
|
||||
02724022
|
||||
1d00fff8
|
||||
0c00009e
|
||||
08000068
|
||||
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
|
||||
Reference in New Issue
Block a user