[an error occurred while processing this directive]
|
Сделал из вот этого сырца:
void main(void)
{
volatile UInt16 result[4];
result[0] = 231;
result[1] = 12;
result[2] = add(result[0], result[1]);
result[1] = mul(result[0], result[2]);
result[3] = div(result[1], result[2]);
return;
}
Вот что получилось:
math16:
mov #231,result0 ;result0=231
mov #12,result1 ;result1=12
add result0,result1,result2 ;result2=result0+result1
mul.uu result0,result2,result1 ;result1=result0*result2
repeat #17 ;Set # of div iterations, =17 for 16-bit div
div.u result1,result2 ;result3=result1/result2
return ;return
;Total exec time = 26 cycles = 0.65 uS @40 MIPS (0.87 uS @30 MIPS). Was 39 cycles (1.5 times slower)
;Code size = 7 words (24-bit)/21 bytes. Was 80 words/240 bytes (11.4 times larger)
E-mail: info@telesys.ru