?? fastfnctptr.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 + -