<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Am 20.04.2022 um 10:50 schrieb <a href="mailto:rburnett@richieburnett.co.uk" class="">rburnett@richieburnett.co.uk</a>:</div><br class="Apple-interchange-newline"><div class=""><meta charset="UTF-8" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">For nearly 30 years I've programmed PICs in assembly language for both hobby projects and commercial work.  To be honest I don't see how you could program most of the low-end parts in any other way.  In some cases they only have a handful of bytes of RAM and less than 1K of program space, so I can't see them being much use in any sort of higher level language.<span class="Apple-converted-space"> </span></span></div></blockquote></div><br class=""><div class="">On my day job, I had written programs for the 8051 (only 256 bytes of RAM! Certainly not more powerful than a PIC) in C for many years. In fact, C can be easier on RAM than assembly language, since in assembly there’s no such thing as local variables.</div><div class="">And regarding program memory usage: in the beginning I tried to outsmart the compiler (counting a loop counter down rather than up), hoping the compiler would use the DJNZ instruction. DJNZ (decrement and jump if not zero) is a powerful 8051 instruction for creating loops. Then I looked at the code the compiler had created: no DJNZ in there. Looking closer I found that the compiler’s solution was shorter and faster than the one I had in mind.</div><div class=""><br class=""></div><div class="">Look at Arduino: tons of programs for the low-end 8 bit AVR, all written in C++. I really don’t get it why the PIC guys stick to assembly language.</div><div class=""><br class=""></div><div class="">Ingo</div></body></html>