BeanieBots
Moderator
If anything it's the opposite Jez. The tokenized code is very clever and very space efficient but it is also very general. When you do a program in assembler, you only use code that is actually required rather than only using part of a general routine. If for example, you wanted to serout something, it is unlikely that your routine would need to cater for inversion or different baud rates but a general purpose routine would be almost useless without such features.
When it comes to higher level compilers, a lot depends on how clever that compiler is. Many years ago I had a C compiler for the Z80. Whenever I used the printf statement a massive amount of code was generated just in case I needed those features.
If you just wanted to set a single output high, you'd do just that. You wouldn't write a subroutine which could be passed a pin number and a state value etc, etc.
Also, there is the bootloader which is not required and many other parts of the firmware that need to be there JUST IN CASE that particular feature is needed.
Bottom line is that YOU are in control.
When it comes to higher level compilers, a lot depends on how clever that compiler is. Many years ago I had a C compiler for the Z80. Whenever I used the printf statement a massive amount of code was generated just in case I needed those features.
If you just wanted to set a single output high, you'd do just that. You wouldn't write a subroutine which could be passed a pin number and a state value etc, etc.
Also, there is the bootloader which is not required and many other parts of the firmware that need to be there JUST IN CASE that particular feature is needed.
Bottom line is that YOU are in control.