 | Cx51 User's Guide |  |
|
|
| Version 2.0 Differences- Absolute Register Addressing
C51 now generates code that performs absolute register addressing. This improves execution speed. The directives AREGS and NOAREGS enable or disable this feature. - Bit-addressable Memory Type
Variable types of char and int may now be declared to reside in the bit-addressable internal memory area using the bdata memory specifier. - Intrinsic Functions
Intrinsic functions have been added to the library to support some of the special instructions built into the 8051. - Mixed Memory Models
Calls to and from functions of different memory models are now supported. - New Optimizer Levels
Two new levels of optimization have been added to the C51 ompiler. These new levels support register variables, local common subexpression elimination, loop optimizations, and global common subexpression elimination, to name a few. - New Predefined Macros
The macros __C51__ and __MODEL__ are now defined by the preprocessor at compile time. - Reentrant and Recursive Functions
Individual functions may now be defined as being reentrant or recursive by using the reentrant function attribute. - Registers Used for Parameter Passing
C51 now passes up to 3 function arguments using registers. The REGPARMS and NOREGPARMS directives enable or disable this feature. - Support for Memory-specific Pointers
Pointers may now be defined to reference data in a particular memory area. - Support for PL/M-51 Functions
The alien keyword has been added to support PL/M-51 compatible functions and function calls. - Volatile Type Specifier
The volatile variable attribute may be used to enforce variable access and to prevent optimizations involving that variable.
|
|