diff options
| author | s-ol <s+removethis@s-ol.nu> | 2021-07-09 14:36:47 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2021-07-09 14:39:04 +0000 |
| commit | dd0f115ef08293623236b25810a770cd42be5bca (patch) | |
| tree | 9d901e2b05521de105499b9feac9ede1fbf62eaf /examples | |
| parent | validate opi, system (diff) | |
| download | subv-dd0f115ef08293623236b25810a770cd42be5bca.tar.gz subv-dd0f115ef08293623236b25810a770cd42be5bca.zip | |
examples: exit via SBI
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/ask_name.subv | 12 | ||||
| -rw-r--r-- | examples/hello_world.subv | 14 |
2 files changed, 21 insertions, 5 deletions
diff --git a/examples/ask_name.subv b/examples/ask_name.subv index f411bfc..dfd5a7a 100644 --- a/examples/ask_name.subv +++ b/examples/ask_name.subv @@ -42,8 +42,16 @@ main: 13/opi a/rd/a0 0/subop/add a/rs/a0 NICETOMEETU/imm12lo 6f/jal 1/rd/ra print/off21 - # infinite loop - 6f/jal 0/rd/x0 0/off21 +exit: +# system reset (via SBI extension SRST) + # a7 = ext id, a6 = fid, a0 = 0, a1 = 0 + 37/lui 11/rd/a7 53525/imm20 + 13/opi 11/rd/a7 0/subop/add 11/rs/a7 354/imm12 + 33/opr 0/mode/norm 10/rd/a6 0/subop/add 0/rs/x0 0/rs/x0 + 33/opr 0/mode/norm a/rd/a0 0/subop/add 0/rs/x0 0/rs/x0 + 33/opr 0/mode/norm b/rd/a1 0/subop/add 0/rs/x0 0/rs/x0 + # ECALL + 73/system 0/subop/priv 0/funct12/ecall init: # initialize UART0 diff --git a/examples/hello_world.subv b/examples/hello_world.subv index d25aa83..b85739d 100644 --- a/examples/hello_world.subv +++ b/examples/hello_world.subv @@ -11,9 +11,17 @@ main: 13/opi a/rd/a0 0/subop/add a/rs/a0 Message/imm12lo # call print 6f/jal 1/rd/ra print/off21 -loop: - # infinite loop - 6f/jal 0/rd/x0 main/off21 + +exit: +# system reset (via SBI extension SRST) + # a7 = ext id, a6 = fid, a0 = 0, a1 = 0 + 37/lui 11/rd/a7 53525/imm20 + 13/opi 11/rd/a7 0/subop/add 11/rs/a7 354/imm12 + 33/opr 0/mode/norm 10/rd/a6 0/subop/add 0/rs/x0 0/rs/x0 + 33/opr 0/mode/norm a/rd/a0 0/subop/add 0/rs/x0 0/rs/x0 + 33/opr 0/mode/norm b/rd/a1 0/subop/add 0/rs/x0 0/rs/x0 + # ECALL + 73/system 0/subop/priv 0/funct12/ecall print: # load 0x10000000 (UART0) into t0 |
