51单片机keil 库函数说明

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.

猜你喜欢

转载自blog.csdn.net/shenhuxi_yu/article/details/80820448
今日推荐