move-a-hand-compiled.cups
· 960 B · Text
Raw
Playground
initial-state:
set #1 &move
set #1 &a:1000000
search:
rule-1:
jez &move %rule-2
jez &a %rule-2
jez &a %rule-2
set #max @alu.op1
cpy &move @alu.op2
inc @alu.min
cpy @alu.out1 @alu.op1
cpy &a @alu.op2
inc @alu.min
cpy @alu.out1 &min
cpy &a @alu.op1
cpy &min @alu.op2
inc @alu.sub-sat
cpy @alu.out1 &a
cpy &a @alu.op1
cpy &min @alu.op2
inc @alu.sub-sat
cpy @alu.out1 &a
cpy &move @alu.op1
cpy &min @alu.op2
inc @alu.sub-sat
cpy @alu.out1 &move
cpy &move @alu.op1
cpy &min @alu.op2
inc @alu.add
cpy @alu.out1 &mov
cpy &move @alu.op1
cpy &min @alu.op2
inc @alu.add
cpy @alu.out1 &mov
cpy &b @alu.op1
cpy &min @alu.op2
inc @alu.add
cpy @alu.out1 &b
jmp &search
rule-2:
jez &move %done
set #max @alu.op1
cpy &move @alu.op2
inc @alu.min
cpy @alu.out1 &min
cpy &move @alu.op1
cpy &min @alu.op2
inc @alu.sub-sat
cpy @alu.out1 &move
jmp &search
done:
hlt
1 | initial-state: |
2 | set #1 &move |
3 | set #1 &a:1000000 |
4 | |
5 | search: |
6 | rule-1: |
7 | jez &move %rule-2 |
8 | jez &a %rule-2 |
9 | jez &a %rule-2 |
10 | |
11 | set #max @alu.op1 |
12 | cpy &move @alu.op2 |
13 | inc @alu.min |
14 | |
15 | cpy @alu.out1 @alu.op1 |
16 | cpy &a @alu.op2 |
17 | inc @alu.min |
18 | |
19 | cpy @alu.out1 &min |
20 | |
21 | cpy &a @alu.op1 |
22 | cpy &min @alu.op2 |
23 | inc @alu.sub-sat |
24 | cpy @alu.out1 &a |
25 | |
26 | cpy &a @alu.op1 |
27 | cpy &min @alu.op2 |
28 | inc @alu.sub-sat |
29 | cpy @alu.out1 &a |
30 | |
31 | cpy &move @alu.op1 |
32 | cpy &min @alu.op2 |
33 | inc @alu.sub-sat |
34 | cpy @alu.out1 &move |
35 | |
36 | cpy &move @alu.op1 |
37 | cpy &min @alu.op2 |
38 | inc @alu.add |
39 | cpy @alu.out1 &mov |
40 | |
41 | cpy &move @alu.op1 |
42 | cpy &min @alu.op2 |
43 | inc @alu.add |
44 | cpy @alu.out1 &mov |
45 | |
46 | cpy &b @alu.op1 |
47 | cpy &min @alu.op2 |
48 | inc @alu.add |
49 | cpy @alu.out1 &b |
50 | |
51 | jmp &search |
52 | |
53 | |
54 | rule-2: |
55 | jez &move %done |
56 | |
57 | set #max @alu.op1 |
58 | cpy &move @alu.op2 |
59 | inc @alu.min |
60 | |
61 | cpy @alu.out1 &min |
62 | |
63 | cpy &move @alu.op1 |
64 | cpy &min @alu.op2 |
65 | inc @alu.sub-sat |
66 | cpy @alu.out1 &move |
67 | |
68 | jmp &search |
69 | |
70 | done: |
71 | hlt |
move-a.nv
· 79 B · Text
Raw
Playground
|#| constant, a, 1000000
|move, a, a| move, move, b
|move|
|| move, a:1000000
1 | |#| constant, a, 1000000 |
2 | |
3 | |move, a, a| move, move, b |
4 | |move| |
5 | |
6 | || move, a:1000000 |