Por cierto, el mismo codigo que has puesto tu, con optimizacion:
17: for( i = 0; i < 5; i++) a = b;
00318 EB4100 clr.b 0x0004
0031A FB8002 ze.b 0x0004,0x0000
0031C D00000 sl.w 0x0000,0x0000
0031E 5780EA sub.w 0x001e,#10,0x0002
00320 788260 mov.w [0x0000+0x0002],0x0008
00322 5001F4 sub.w 0x0000,#20,0x0006
00324 7FB184 mov.w 0x0008,[0x0006+0x001e]
00326 E84102 inc.b 0x0004,0x0004
00328 514FE4 sub.b 0x0004,#4,[0x001e]
0032A 36FFF7 bra leu, 0x00031a
Que sigue sin estar optimizado, pero es menos de la mitad que el anterior...
Siempre que se quiera usar velocidad hay que usar asm, pero un programa no tiene porque necesitar velocidad en todas las funciones. Cuando se quiera hacer cosas criticas es mejor morir a asm siempre, pero cuando la velocidad no sea importante, es mucho mas comodo el C...
Un saludo,