move-a-hand-compiled.cups
· 960 B · Text
原始檔案
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
原始檔案
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 |