--------------------------------------------------------------------------------------------------- 看来,在写c语言过程中,优化工作还得人工干预一下才好. 下面是另一个优化的例子: --------------------------------------------------------------------------------------------------- ----------------------------------------写法1: 382: H_LINE = TIME_H / 2 * 15 + TIME_M / 4 ; //时针定位="时"/2*15+"分"/4 078D 300F MOVLW 0xf 078E 00F1 MOVWF 0x71 078F 1003 BCF 0x3, 0 0790 0C30 RRF 0x30, W 0791 120A BCF 0xa, 0x4 0792 118A BCF 0xa, 0x3 0793 2768 CALL 0x768 (注意看这里,居然调用了乘法函数!) 0794 120A BCF 0xa, 0x4 0795 118A BCF 0xa, 0x3 0796 00F0 MOVWF 0x70 0797 0831 MOVF 0x31, W 0798 00F1 MOVWF 0x71 0799 1003 BCF 0x3, 0 079A 0CF1 RRF 0x71, F 079B 1003 BCF 0x3, 0 079C 0C71 RRF 0x71, W 079D 0770 ADDWF 0x70, W 079E 00A4 MOVWF 0x24
----------------------------------------写法2: 383: 384: i = TIME_H / 2 ; 079F 1003 BCF 0x3, 0 07A0 0C30 RRF 0x30, W 07A1 00C1 MOVWF 0x41 385: j = i * 4 - i ; 07A2 00F0 MOVWF 0x70 07A3 1003 BCF 0x3, 0 07A4 0DF0 RLF 0x70, F 07A5 1003 BCF 0x3, 0 07A6 0D70 RLF 0x70, W 07A7 00F0 MOVWF 0x70 07A8 0841 MOVF 0x41, W 07A9 0270 SUBWF 0x70, W 07AA 00C0 MOVWF 0x40 386: i = TIME_M / 4 ; 07AB 0831 MOVF 0x31, W 07AC 00F0 MOVWF 0x70 07AD 1003 BCF 0x3, 0 07AE 0CF0 RRF 0x70, F 07AF 1003 BCF 0x3, 0 07B0 0C70 RRF 0x70, W 07B1 00C1 MOVWF 0x41 387: H_LINE = j - i ; //时针定位="时"/2*15+"分"/4 07B2 0240 SUBWF 0x40, W 07B3 00A4 MOVWF 0x24
|