aboutsummaryrefslogtreecommitdiff
path: root/tests/stack_machine_jump/instructions.s.tcl
blob: f681fc9740329bfb954959bfeb6888c43ed4afc7 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env tclsh

source tclasm.tcl

## Let there be 2 pieces of code - each one storing a different value in memory
## and halting afterwards. Jump instruction should cause the second piece of
## code to execute instead of the first. We'll verify that by checking, which
## value got written.

## Ufortunately, our assembly currently doesn't compute label addresses for us.

# Each of those 4 instructions should get encoded into 1 16-bit word, so they
# will take 8 bytes total. Hence jump to address 8 is needed to skip them.
jump 8
const h12
store@ h00100
halt

# address 8 here
const h34
store@ h00100
halt