第20关,乘法研讨会。指令介绍请看:https://www.annhe.net/article-3828.html。
优化目标:
15行109步
代码
以第一个输入作为待相加的数,第二个输入为相加次数,可以优化代码行数。
15行136步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
-- HUMAN RESOURCE MACHINE PROGRAM -- JUMP f a: COPYFROM 2 c: OUTBOX f: INBOX COPYTO 0 COPYTO 2 INBOX COPYTO 1 JUMPZ c h: BUMPDN 1 JUMPZ a COPYFROM 2 ADD 0 COPYTO 2 JUMP h |
28行107步
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 |
-- HUMAN RESOURCE MACHINE PROGRAM -- JUMP f z: COPYFROM 9 JUMP c a: COPYFROM 2 c: OUTBOX f: INBOX JUMPZ i COPYTO 0 COPYTO 2 INBOX JUMPZ c COPYTO 1 SUB 0 JUMPN h COPYFROM 1 COPYTO 2 COPYFROM 0 COPYTO 1 COPYFROM 2 COPYTO 0 h: BUMPDN 1 JUMPZ a COPYFROM 2 ADD 0 COPYTO 2 JUMP h i: INBOX JUMP z |
废弃代码
下面几段代码将第一个输入作为相加次数,导致多了几次存取,行数和效率都不好。
27行135步
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 36 37 |
-- HUMAN RESOURCE MACHINE PROGRAM -- JUMP f a: COPYFROM 2 JUMP c b: COPYFROM 9 c: OUTBOX JUMP e d: COPYFROM 0 COPYTO 2 COPYFROM 1 COPYTO 0 COPYFROM 2 COPYTO 1 JUMP g e: f: INBOX COPYTO 0 INBOX COPYTO 1 COPYTO 2 SUB 0 JUMPN d g: h: BUMPDN 0 JUMPN b JUMPZ a COPYFROM 2 ADD 1 COPYTO 2 JUMP h |
31行121步
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 36 37 38 39 40 41 |
-- HUMAN RESOURCE MACHINE PROGRAM -- JUMP f a: COPYFROM 2 JUMP c b: COPYFROM 9 c: OUTBOX f: INBOX JUMPZ i COPYTO 0 INBOX JUMPZ j COPYTO 1 COPYTO 2 SUB 0 JUMPN d h: BUMPDN 0 JUMPN b JUMPZ a COPYFROM 2 ADD 1 COPYTO 2 JUMP h i: INBOX JUMP b j: JUMP b d: COPYFROM 0 COPYTO 2 COPYFROM 1 COPYTO 0 COPYFROM 2 COPYTO 1 JUMP h |
发表回复