projects
/
cascardo
/
blix.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Use the timer interrupt to repeatedly print.
[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
li a1, 0x20
11
csrs sie, a1
12
csrr a2, time
13
lui a0, 0x800
14
add a0, a0, a2
15
li a7, 0
16
ecall
17
halt:
18
j halt
19
20
putl:
21
andi a0, a2, 0xf
22
addi a0, a0, 0x30
23
slti a1, a0, 0x3A
24
bne a1, zero, _next
25
addi a0, a0, 7
26
_next:
27
ecall
28
srli a2, a2, 4
29
beq a2, zero, exit2
30
j putl
31
exit2:
32
li a0, 0xa
33
ecall
34
ret
35
36
puts:
37
lb a0, (a1)
38
beq a0, zero, exit
39
ecall
40
addi a1, a1, 1
41
j puts
42
exit:
43
ret
44
45
_hello:
46
.ascii "Hello, world!\n"
47
.byte 0
48
49
.align 8
50
_vec:
51
li a7, 1
52
la a1, _hello
53
jal puts
54
li a7, 0
55
csrr a2, time
56
lui a0, 0x800
57
add a0, a0, a2
58
ecall
59
sret
60
loop2:
61
j loop2
62
63
_exception:
64
.ascii "exception\n"
65
.byte 0