summaryrefslogtreecommitdiff
path: root/misa.S
blob: 4bd93ef3c73f96e876fd6a58cc74350fda7ccd0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
csrr t0,0x301 # Read misa

li a7,11 # Print character
li a0,'R'
ecall
li a0,'V'
ecall
li a0,'3'
ecall
li a0,'2'
ecall

bexti t1,t0,8
li a7,11
li a0,'I'
czero.eqz a7,a7,t1 # Clear ecall function if bit isn't set
ecall

bexti t1,t0,4
li a7,11
li a0,'E'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,12
li a7,11
li a0,'M'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,0
li a7,11
li a0,'A'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,5
li a7,11
li a0,'F'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,3
li a7,11
li a0,'D'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,16
li a7,11
li a0,'Q'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,11
li a7,11
li a0,'L'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,2
li a7,11
li a0,'C'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,1
li a7,11
li a0,'B'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,9
li a7,11
li a0,'J'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,19
li a7,11
li a0,'T'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,15
li a7,11
li a0,'P'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,21
li a7,11
li a0,'V'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,7
li a7,11
li a0,'H'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,18
li a7,11
li a0,'S'
czero.eqz a7,a7,t1
ecall

bexti t1,t0,2

li a7,10
ecall