在CCS5.2的环境下,运行一句整形的乘法运算代码,这一简单的乘法竟然需要164个时钟周期。不知道是我哪里配置不对还是什么原因?
60 phaN= SYSSP->PHASE*(i+1);
C$DW$L$_Sys_sta_calc_issin$2$B, C$L4:
00802878: AC3D LDW.D2T1 *B15[1],A3 //clock =0
0080287a: 2641 ADD.L2 B4,1,B4 //clock=40
0080287c: EB430000 .fphead n, l, W, H, nobr, nosat, 1011010 // clock=46
00802880: 00004000 NOP 3 //clock=46
00802884: 01832650 ADDK.S1 1612,A3 //clock=64
00802888: 018C0244 LDH.D1T1 *+A3[0],A3 //clock=70
0080288c: 02107570 MPYLI.M1X A3,B4,A5:A4 //clock=134
00802890: 00004000 NOP 3 // clock=140
00802894: 023D02D4 STH.D2T1 A4,*+SP[8] // clock=158
61 phaN= phaN%SIZE; //模,取余数 // clock=164
Tony Tang:
就指令本身来说,其运行时间是固定的,其它时间是由于内存延时造成的。
具体指令的运行时间,可以参考指令手册。