Tamas Rudnai wrote: >> There is none. That's my point. It doesn't make this distinction. It has >> one mechanism (call/return; assembly statements are quite similar to >> what keywords are in C, for example: the element of the language), >> which is used to create indistinguishable functions and procedures and >> subroutines (however you want to call them). > > That is one of the reason I thing software and firmware developers > should learn how compilers work and what code they generate. This is not > the first time here in this subject talking about how a C would compile > code and non-assembly minded developers tend to get it wrong - or just > simplify it. A function in C (and virtually all HLLs) has prologues and > epilogues that initialize the function and then when returns > de-initialize it. I'm not sure you meant to say that I got it wrong, but if you did, you're wrong. And you got it wrong, too. In C, there /may/ be some additional code, but in general, on 8-bit micros, a function call without arguments is a simple call statement and a return from a void function is a simple return. (There may be some rare exception, but I think you won't find many examples.) Given that Pascal can be quite efficient, too, I suspect that this also is valid for the better Pascal compilers when calling a procedure. Besides, this is all besides the point I was making. Gerhard -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist