用户工具

站点工具


04-游戏:程序员升职记:020

020 乘法研讨会

优化目标: 15行109步

以第一个输入作为待相加的数,第二个输入为相加次数,可以优化代码行数。

15行136步

snippet.asm
-- 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步

snippet.asm
-- 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步

snippet.asm
-- 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步

snippet.asm
-- 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	
04-游戏/程序员升职记/020.txt · 最后更改: 2020/04/07 06:36 由 annhe