1
2
3
4
5
6
7
8#include "regdef.h"
9
10 .global _start
11 .align 16
12_start:
13 la.local t0, stack_end
14 move sp, t0
15 bl main
16
17 .type _start 2
18 .size _start, .-_start
19
20 .global _exit
21 .align 16
22_exit:
232:
24 li.w t0, 0xff
25 li.w t1, 0x10080010
26 st.w t0, t1, 0
27 idle 0
28 bl 2b
29
30 .type _exit 2
31 .size _exit, .-_exit
32
33 .global __sys_outc
34__sys_outc:
35 li.d t1, 1000000
36loop:
37 lu12i.w t2, 0x1fe00
38 ori t0, t2, 0x1e5
39 ld.bu t0, t0, 0
40 andi t0, t0, 0x20
41 ext.w.b t0, t0
42 bnez t0, in
43 addi.w t1, t1, -1
44 bnez t1, loop
45in:
46 ext.w.b a0, a0
47 lu12i.w t0, 0x1fe00
48 ori t0, t0, 0x1e0
49 st.b a0, t0, 0
50 jirl $r0, ra, 0
51
52 .data
53 .align 4
54stack:
55 .space 65536
56stack_end:
57