Recently on another list a challenge was thrown down to solve the= following using the quickest and shortest code. X-> X*2+1 This boils down in assembler to 2 lines. Someone then set about seeing how their C compilers fared. With FED C I noticed the difference in code length caused by just= a simple change to the syntax. There was only one compiler that managed a two line code however= the professional version is quite expensive. Code Follows. //Program to solve X-> 2X +1 //shortest assembler version by Dmitriy A. Kiryashov //comf X,W //subwf X,W ;or ,F //************************* //OR THIS // //set c //rlf x,F CDB 6/5/2002 unsigned char N=3D3; void main() { N=3D(N*2)+1; // movfw N // movwf ACC // clrc // rlf ACC // incf ACC // movfw ACC // movwf N // 7 instructions *********************************** N=3D3; N*=3D2; // movlw 37 N+=3D1; // movwf ACC // clrf 14 // call PushA // movwf FSR // movfw 0 // movwf ACC //movlw 3 //movwf ACC2 // call MulUSA // call Pop2A //call SavePACC2A // incf N // 13 instructions plus the routine calls } Just thought this example proves it's worth playing with the code= to get the best compilation. Colin -- cdb, cdb@barnard.name on 01/04/2002 -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.