⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fastfnctptr.lst

📁 C language fast function point sample code example
💻 LST
字号:
C51 COMPILER V8.02   FASTFNCTPTR                                                           09/21/2007 10:42:40 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE FASTFNCTPTR
OBJECT MODULE PLACED IN FastFnctPtr.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FastFnctPtr.C OBJECTADVANCED OPTIMIZE(SIZE) BROWSE NOINTVECTOR DEBUG

line level    source

   1          #include <intrins.h>
   2          
   3          /*
   4          **
   5          */
   6          #define LJMP_OPCODE     0x02
   7          #define DISABLE_WARNING_C280(arg)       arg=arg;
   8          /*
   9          **代刚ノ fnct
  10          */
  11          void AFnct0(int j)
  12          {
  13   1              DISABLE_WARNING_C280(j);
  14   1      }
  15          void AFnct1(int j, int k)
  16          {
  17   1              DISABLE_WARNING_C280(j);
  18   1              DISABLE_WARNING_C280(k);
  19   1      }
  20          void BFnct0(int j)
  21          {
  22   1              DISABLE_WARNING_C280(j);
  23   1      }
  24          void BFnct1(int j, int k)
  25          {
  26   1              DISABLE_WARNING_C280(j);
  27   1              DISABLE_WARNING_C280(k);
  28   1      }
  29          
  30          
  31          //
  32          // main()
  33          typedef struct _DEVICE_API{                                                     
  34                          unsigned long Fnct0;
  35                          unsigned long Fnct1;
  36                          }DEVICE_API;
  37          xdata DEVICE_API XXXFNCT_TBL[2] _at_ 0x1000;
  38          
  39          code unsigned int DEVICE_API_TBL [8] = 
  40          {
  41                  LJMP_OPCODE, AFnct0,
  42                  LJMP_OPCODE, AFnct1,
  43                  LJMP_OPCODE, BFnct0,
  44                  LJMP_OPCODE, BFnct1,
  45          };
  46          
  47          
  48          #define XXXFnct0(arg)           ((void (code *) (int)) 0x1000) (arg)    
  49          #define XXXFnct1(arg0,arg1)     ((void (code *) (int,int)) 0x1004) (arg0, arg1) 
  50          
  51          void SwitchDevice(char lun)
  52          {
  53   1              *((DEVICE_API*)XXXFNCT_TBL) = ((DEVICE_API*)DEVICE_API_TBL)[lun];
  54   1      }
  55          
C51 COMPILER V8.02   FASTFNCTPTR                                                           09/21/2007 10:42:40 PAGE 2   

  56          void main(void)
  57          {
  58   1              SwitchDevice(0);
  59   1              XXXFnct0(23);
  60   1              XXXFnct1(23,88);
  61   1      
  62   1              SwitchDevice(1);
  63   1              XXXFnct0(23);
  64   1              XXXFnct1(23,88);
  65   1              while(1);
  66   1      
  67   1      }
  68          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     90    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -