aboutsummaryrefslogtreecommitdiffstats
path: root/ex.pack
diff options
context:
space:
mode:
Diffstat (limited to 'ex.pack')
-rw-r--r--ex.pack16
1 files changed, 15 insertions, 1 deletions
diff --git a/ex.pack b/ex.pack
index 2bef2a1..5a6cdf4 100644
--- a/ex.pack
+++ b/ex.pack
@@ -1,9 +1,23 @@
== code 0x80000000
+# repeatedly print "Hi\n"
+# main:
+# load 0x10010000 (UART0) into t0
b7 02 01 10
+# store 0x48 (H) in UART0+0
13 03 80 04
23 a0 62 00
+# store 0x69 (i) in UART0+0
13 03 90 06
23 a0 62 00
+# store 0x0a (\n) in UART0+0
13 03 a0 00
23 a0 62 00
-6f f0 5f fe
+# 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)
+97 f3 ff ff
+67 80 43 fe
+# c) lui+jalr 32bit absolute
+# 37/lui 7/rd/t2 main/imm32
+# 67/jalr 0/subop 0/rd/x0 7/rs/t2 main/imm32