I have recently been reading (perhaps belatedly) the Compiler manual for CW08 V5.0. I have come across a couple of areas I am not particularly happy with, and find somewhat confusing.
The following paragraph can be found within section 9, "Generating Compact Code" -
Unsigned Data Types
Using unsigned data types is acceptable as signed operations are much more complex than unsigned ones (e.g., shifts, divisions and bitfield operations). But it is a bad idea to use unsigned types just because a value is always larger or equal to zero, and because the type can hold a larger positive number.
The author does not say why it is considered a "bad idea". I might have considered the use of unsigned data types a very good idea if it results in simpler and more compact code, and avoids the need to use an int variable in place of char, or a long in place of int. What could be the perceived problem with using unsigned data types?
However, I am more generally unhappy with the whole of section 11, "High-Level Inline Assembler for the Freescale HC(S)08". It is assumed the reader is already familiar with terms like "EBNF Syntax", and the information is given in a very cryptic fashion. The code examples given are sparse, and do not really explain the features of inline assembler that differ from normal assembler (that I am reasonably familiar with). Within the code snippets, comments are virtually non-existent.
Additional addressing modes, not available in normal assembler, are not adequately explained. I find the paragraph on "In & Gen Sets" very confusing.
I get the feeling that a 10 page limit must have been placed on the inline assembler section - it is well below the standard of other manuals, such as the Assembler manual. Having said this, can anyone suggest additional information about inline assembler, perhaps in the form of a tutorial?
Message Edited by CrasyCat on 2007-04-13 11:44 AM