Keil Logo

C51: ?C? Load and Store Library Routines


Information in this article applies to:

  • C51 Version 6.x and later

NOTE

The Keil C51 library includes a number of helper routines for the C51 compiler. These routines perform mundane tasks like loading and storing objects. The code to perform these operations is not included in-line but is implemented via a function call.

These routines are named using the following convention: ?C?tffmmm

where:

  • t is the type field,
  • ff is the function field,
  • and mmm is the memory type field.

TYPE FIELD

The type field is a character that indicates the data type used:

  • C indicates a character that is passed in A.
  • I indicates an int that is passed in A/B.
  • P indicates a 3-byte pointer that is passed in R1/R2/R3.
  • L indicates a long that is passed in R4/R5/R6/R7.
  • L0 indicates a long that is passed in R0/R1/R2/R3.

FUNCTION FIELD

The function field indicates the operation that is performed:

  • LD indicates a read (load) operation.
  • ILD indicates an increment and load operation (pre-increment load). The increment value is passed in A/B.
  • LDI indicates a load and increment operation (post-increment load). The increment value is passed in A/B.
  • ST indicates a write (store) operation.
  • STK indicates writing of constant data encoded as DB statements immediately following the library function call.

MEMORY TYPE FIELD

The memory type field indicates that memory area that is accessed:

  • XDATA represents XDATA memory.
  • PDATA represents PDATA memory.
  • IDATA represents IDATA memory.
  • DATA represents DATA memory.
  • CODE represents CODE memory.
  • PTR represents a 3-byte pointer in R1/R2/R3.
  • OPTR represents a 3-byte pointer plus an offset in R1/R2/R3 + DPTR.

EXAMPLE

The library routine ?C?PLDIPTR is passed a generic pointer in R1/R2/R3 (P). This pointer points to a pointer which is returned in R1/R2/R3 (PTR). A/B contain the MSB and LSB of a value to add to the pointer (LDI). The pointer returned is the pointer value before the increment is added.

SEE ALSO

COMPLETE LISTING

Following is a complete list of all routines possible using the above naming conventions:

?C?CLDXDATA, ?C?ILDXDATA, ?C?PLDXDATA, ?C?LLDXDATA, ?C?L0LDXDATA, ?C?CILDXDATA, ?C?IILDXDATA, ?C?PILDXDATA, ?C?LILDXDATA, ?C?L0ILDXDATA, ?C?CLDIXDATA, ?C?ILDIXDATA, ?C?PLDIXDATA, ?C?LLDIXDATA, ?C?L0LDIXDATA, ?C?CSTXDATA, ?C?ISTXDATA, ?C?PSTXDATA, ?C?LSTXDATA, ?C?L0STXDATA, ?C?CSTKXDATA, ?C?ISTKXDATA, ?C?PSTKXDATA, ?C?LSTKXDATA, ?C?L0STKXDATA,

?C?CLDPDATA, ?C?ILDPDATA, ?C?PLDPDATA, ?C?LLDPDATA, ?C?L0LDPDATA, ?C?CILDPDATA, ?C?IILDPDATA, ?C?PILDPDATA, ?C?LILDPDATA, ?C?L0ILDPDATA, ?C?CLDIPDATA, ?C?ILDIPDATA, ?C?PLDIPDATA, ?C?LLDIPDATA, ?C?L0LDIPDATA, ?C?CSTPDATA, ?C?ISTPDATA, ?C?PSTPDATA, ?C?LSTPDATA, ?C?L0STPDATA, ?C?CSTKPDATA, ?C?ISTKPDATA, ?C?PSTKPDATA, ?C?LSTKPDATA, ?C?L0STKPDATA,

?C?CLDIDATA, ?C?ILDIDATA, ?C?PLDIDATA, ?C?LLDIDATA, ?C?L0LDIDATA, ?C?CILDIDATA, ?C?IILDIDATA, ?C?PILDIDATA, ?C?LILDIDATA, ?C?L0ILDIDATA, ?C?CLDIIDATA, ?C?ILDIIDATA, ?C?PLDIIDATA, ?C?LLDIIDATA, ?C?L0LDIIDATA, ?C?CSTIDATA, ?C?ISTIDATA, ?C?PSTIDATA, ?C?LSTIDATA, ?C?L0STIDATA, ?C?CSTKIDATA, ?C?ISTKIDATA, ?C?PSTKIDATA, ?C?LSTKIDATA, ?C?L0STKIDATA,

?C?CLDDATA, ?C?ILDDATA, ?C?PLDDATA, ?C?LLDDATA, ?C?L0LDDATA, ?C?CILDDATA, ?C?IILDDATA, ?C?PILDDATA, ?C?LILDDATA, ?C?L0ILDDATA, ?C?CLDIDATA, ?C?ILDIDATA, ?C?PLDIDATA, ?C?LLDIDATA, ?C?L0LDIDATA, ?C?CSTDATA, ?C?ISTDATA, ?C?PSTDATA, ?C?LSTDATA, ?C?L0STDATA, ?C?CSTKDATA, ?C?ISTKDATA, ?C?PSTKDATA, ?C?LSTKDATA, ?C?L0STKDATA,

?C?CLDCODE, ?C?ILDCODE, ?C?PLDCODE, ?C?LLDCODE, ?C?L0LDCODE, ?C?CILDCODE, ?C?IILDCODE, ?C?PILDCODE, ?C?LILDCODE, ?C?L0ILDCODE, ?C?CLDICODE, ?C?ILDICODE, ?C?PLDICODE, ?C?LLDICODE, ?C?L0LDICODE, ?C?CSTCODE, ?C?ISTCODE, ?C?PSTCODE, ?C?LSTCODE, ?C?L0STCODE, ?C?CSTKCODE, ?C?ISTKCODE, ?C?PSTKCODE, ?C?LSTKCODE, ?C?L0STKCODE,

?C?CLDPTR, ?C?ILDPTR, ?C?PLDPTR, ?C?LLDPTR, ?C?L0LDPTR, ?C?CILDPTR, ?C?IILDPTR, ?C?PILDPTR, ?C?LILDPTR, ?C?L0ILDPTR, ?C?CLDIPTR, ?C?ILDIPTR, ?C?PLDIPTR, ?C?LLDIPTR, ?C?L0LDIPTR, ?C?CSTPTR, ?C?ISTPTR, ?C?PSTPTR, ?C?LSTPTR, ?C?L0STPTR, ?C?CSTKPTR, ?C?ISTKPTR, ?C?PSTKPTR, ?C?LSTKPTR, ?C?L0STKPTR,

?C?CLDOPTR, ?C?ILDOPTR, ?C?PLDOPTR, ?C?LLDOPTR, ?C?L0LDOPTR, ?C?CILDOPTR, ?C?IILDOPTR, ?C?PILDOPTR, ?C?LILDOPTR, ?C?L0ILDOPTR, ?C?CLDIOPTR, ?C?ILDIOPTR, ?C?PLDIOPTR, ?C?LLDIOPTR, ?C?L0LDIOPTR, ?C?CSTOPTR, ?C?ISTOPTR, ?C?PSTOPTR, ?C?LSTOPTR, ?C?L0STOPTR, ?C?CSTKOPTR, ?C?ISTKOPTR, ?C?PSTKOPTR, ?C?LSTKOPTR, ?C?L0STKOPTR


Last Reviewed: Thursday, February 25, 2021


Did this article provide the answer you needed?
 
Yes
No
Not Sure
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.