The Crossware 8051 ANSI C compiler supports both 32 bit and 64 bit floating point objects. They are however ideal for the application where low precision floating point arithmetic is all that is required. 64 bit floating point objects contain 53 bits of precision and are therefore ideal where arithmetic accuracy is an important issue. All floating point arithmetic and normalisation routines are hand-coded in 8051 assembler to provide fast and compact library code. The compiler supports a small memory model for use with chips that do not have any external ram and a large memory model for chips with external ram.
Functions can be either reentrant or non-reentrant .
A non-reentrant function is faster and smaller but cannot be called either directly or indirectly from within itself. The compiler generates full IEEE695 debug records. These records provide full information to a simulator or debugger that supports this IEEE695 format allowing you to single step through your C source code and watch all of your C variables. The assembler that is included with the 8051PSDS-A package also generates IEEE695 debug records and so you can single step through your assembler code too. The compiler provides numerous features that allow you to access the 8051 features at the C source level.