第 35 关,删除重复项。指令集介绍请看:https://www.annhe.net/article-3828.html。
优化目标
17 行 167 步
代码
16行149步
见 Github。执行顺序很好,不用来回取变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
start: INBOX JUMP out up: BUMPUP 14 COPYFROM 12 out: COPYTO [14] OUTBOX loop: COPYFROM 14 COPYTO 13 INBOX COPYTO 12 compare: SUB [13] JUMPZ loop BUMPDN 13 JUMPN up COPYFROM 12 JUMP compare |
15行177步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
start: INBOX COPYTO [14] out: COPYFROM [14] OUTBOX BUMPUP 14 up: COPYFROM 14 COPYTO 13 loop: INBOX COPYTO [14] compare: BUMPDN 13 JUMPN out COPYFROM [13] SUB [14] JUMPZ up JUMP compare |
21行161步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
init: INBOX COPYTO 0 OUTBOX COPYFROM 14 COPYTO 13 BUMPUP 13 JUMP loop out: COPYFROM [13] OUTBOX BUMPUP 13 loop: COPYFROM 14 COPYTO 12 INBOX COPYTO [13] compare: SUB [12] JUMPZ loop BUMPUP 12 SUB 13 JUMPZ out COPYFROM [13] JUMP compare |
第一次pass 25行224步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
COPYFROM 14 COPYTO 13 COPYTO 12 INBOX COPYTO 0 OUTBOX JUMP loop out: COPYFROM 11 OUTBOX reset: COPYFROM 14 COPYTO 12 loop: INBOX COPYTO 11 find: COPYFROM 13 SUB 12 JUMPN notfound COPYFROM [12] SUB 11 JUMPZ reset BUMPUP 12 JUMP find notfound: BUMPUP 13 COPYFROM 11 COPYTO [13] JUMP out |
发表回复