→ SmallBeeWayn:好久沒寫8051ASM了,可能會有錯,以C為準 08/26 16:18
推 WolfLord:但是CPU CYCLE會差很多喔~ 08/26 17:03
→ SmallBeeWayn:樓上是說我們兩個的寫法,還是C跟ASM之間? 08/26 21:58
推 WolfLord:ASM VS ASM,而且我也沒最佳化,隨手寫寫 :P 08/26 22:10
→ WolfLord:一般,如無必要我都會避免乘除指令(4個CYCLE) 08/26 22:11
→ WolfLord:用你的流程,換成DAA,應該會最佳化 ^^; 08/26 22:13
我算了一下,我的程式碼總共11 CYCLE, 9 CODE
如果改用DA A的話,我能寫到的極限:
CYCLE CODE
MOV A,R7 ;Take num 1 1
MOV R0,R5 ;Take *byte 2 2
DA A 1 1
MOV R1,A 1 1
SWAP A 1 1
ANL A,#0x0F 1 2
MOV @R0,A ;十位數 1 1
INC R0 1 1
MOV A,R1 1 1
ANL A,#0x0F 1 1
MOV @R0,A ;個位數 1 1
RET
總共12 CYCLE, 13 CODE
推 WolfLord:還有,您答案放反了 :P 08/26 22:25
改了
※ 編輯: SmallBeeWayn 來自: 122.116.180.163 (08/27 00:51)
推 WolfLord:嗯,您對了 ^^;; 辛苦了 08/27 01:15