The primary reason that Assembly is so popular is that firmware can be made smaller, the PIC executes algorithms faster, with the result that more can be done in less space. Another reason is that C requires overhead, and for some small PICs, the overhead is simply unavailable. Years ago I bought an expensive C compiler and offered that capability. Whether it was Hitachi, Zilog or PIC, every time I had an algorithm worked out my client said "That's great, Bob. Now I also want it to do this and this and this." Suddenly, the C code had to be rewritten into Assembler so that I could add "this and this and this". Finally, I simply stopped offering C anymore. Having said that, processors now have better capability and more RAM than before, and are oriented to C requirements. I like Pascal better than C and have begun tinkering with Mikro Pascal for PIC. Its fun. But my primary work is Assembler. --Bob Don French wrote: > Having a library is a good reason, but you can link assembly code with C if you want to. And having libraries of Assembly code is great, and I would use those libraries to the fullest when there is no C library to do the same thing. Copy and paste is the longest and most honored of programming traditions and I fully agree with it. But not knowing C is valid only up to a point. After all, it is extremely easy to learn C, especially compared to learning Assembly. I know that for fact as I have written tens of thousands of lines of code in both, just not for the PIC. But the only time I chose Assembly over C is when there was a good reason. For example, I wrote a chess engine in 80x86 because I needed to squeeze every cycle I could out of the processor, and I pulled every trick in the book and some that weren't in the book to get those cycles because speed was of the essence in that situation. > > But unless there is a specific requirement that demands Assembly, developing in Assembly is counter productive in my humble opinion. I have the feeling that some people do it solely to feel superior to those who don't know Assembly. I see that attitude enough among some of the Linux fanatics to find it extremely tiresome. Whatever is most the efficient use of my time is what is best for me. If you code for a hobby and find the business of playing with bits and registers and memory banks fun, then sure why not. But if you do it for a living, why make life harder than it needs to be? Well, that is my take on it anyway. I don't want to try to change anyone's mind. > > Someone else posted that this has been discussed to death already, but I am new to the list so I missed it. I didn't want to stir anything up, I just thought that there must be some valid reasoning behind the choice of Assembly that I wasn't aware of. So unless someone has a reason other than "it is more fun" or "the code that I need already exists in Assembly and not in C" which are fine reasons, let's drop it. > > -- Don > > > ----- Original Message ----- > From: William Jacobs > To: Microcontroller discussion list - Public. > Sent: Saturday, March 10, 2007 12:57 PM > Subject: Re: [PIC] Why bother with Assembly? > > > Don, > I know assembly, I don't know c. I have a vast library of routines > already written in assembly. Most of my programming is cut and paste. > bill > > > Don French wrote: > > >I see a lot of posts on this list that indicate that people are programming in Assembly. So, I wonder why. Except for really tight timing situations, why not use C, which is one heck of a lot easier to write, read, maintain, etc.? And the optimizing compilers probably do at least as good a job of saving bytes as most people can do by writing in Assembly. So, what is the point? > > > >-- Don > > > > > > > -- > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist > -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist