projects
/
cascardo
/
blix.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Print cause during exception handling
[cascardo/blix.git]
/
blix.S
1
.global _start
2
_start:
3
li a1, 2
4
csrs sstatus, a1
5
la a1, _vec
6
csrw stvec, a1
7
li a7, 1
8
la a1, _hello
9
jal puts
10
csrr a2, stvec
11
jal putl
12
halt:
13
j halt
14
15
putl:
16
andi a0, a2, 0xf
17
addi a0, a0, 0x30
18
slti a1, a0, 0x3A
19
bne a1, zero, _next
20
addi a0, a0, 7
21
_next:
22
ecall
23
srli a2, a2, 4
24
beq a2, zero, exit2
25
j putl
26
exit2:
27
li a0, 0xa
28
ecall
29
ret
30
31
puts:
32
lb a0, (a1)
33
beq a0, zero, exit
34
ecall
35
addi a1, a1, 1
36
j puts
37
exit:
38
ret
39
40
_hello:
41
.ascii "Hello, world!\n"
42
.byte 0
43
44
.align 8
45
_vec:
46
li a7, 1
47
la a1, _exception
48
jal puts
49
csrr a2, scause
50
call putl
51
loop2:
52
j loop2
53
54
_exception:
55
.ascii "exception\n"
56
.byte 0