aboutsummaryrefslogtreecommitdiffstats
path: root/ex.format
blob: 5fb48d84b4f17e2597087a55a090ebc3518b6ee2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
== code 0x80000000
# repeatedly print "Hi\n"
main:
# load 0x10010000 (UART0) into t0
37/7 05/5 10010/20
# store 0x48 (H) in UART0+0
13/7 06/5 0/3 00/5 048/12
23/7 00/5 2/3 05/5 06/5 00/7
# store 0x69 (i) in UART0+0
13/7 06/5 0/3 00/5 069/12
23/7 00/5 2/3 05/5 06/5 00/7
# store 0x0a (\n) in UART0+0
13/7 06/5 0/3 00/5 00a/12
23/7 00/5 2/3 05/5 06/5 00/7
# jump back up to the top (three versions):
# a) jal 21bit relative (with 0th bit forced to 0)
#   6f/jal 0/rd/x0 main/off21
# b) auipc+jalr 32bit relative (note label offset)
17/7 07/5 main/off32/[31:12]
67/7 00/5 0/3 07/5 main+4/off32/[11:0]
# c) lui+jalr 32bit absolute
#   37/lui 7/rd/t2 main/imm32
#   67/jalr 0/subop 0/rd/x0 7/rs/t2 main/imm32