?? c3.lst
字號:
C51 COMPILER V7.10 C3 10/03/2007 11:01:30 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE C3
OBJECT MODULE PLACED IN C3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C3.c OBJECTADVANCED OPTIMIZE(SIZE) BROWSE NOINTVECTOR DEBUG
line level source
1 #include <stdio.h>
2 #include <absacc.h>
3
4 //代剛ノ fnct
5 void fnct0(void)
6 {
7 1 volatile char i;
8 1 i=0;
9 1 }
10 void fnct1(void)
11 {
12 1 volatile char i;
13 1 i=1;
14 1 }
15 void fnct2(void)
16 {
17 1 volatile char i;
18 1 i=2;
19 1 }
20 /*
21 void JmpTable(void)
22 {
23 fnct0();
24 fnct1();
25 fnct2();
26 }
27 //ljmp instruction
28
29 */
30 typedef struct {
31 unsigned char OpCode;
32 unsigned int Addr;
33 }LJMP_INST;
34 //
35 // von Neumann memory
36 // X: 0xE000~0xFFFF
37 //
38 // or xdata LJMP_INST LjmpTable _at_ JmpTable;
39 //
40 //
41 xdata LJMP_INST LjmpTable _at_ 0xE000;
42
43 #define XXXFnct ((void (code *) (void)) 0xE000)
44 LJMP_INST i;
45 //
46 // main()
47 //
48 void main(void)
49 {
50 1
51 1 // init
52 1
53 1 LjmpTable.OpCode = 0x2; //ljmp-opcode
54 1
55 1 LjmpTable.Addr = (int)fnct2; //switch2 fnct2
C51 COMPILER V7.10 C3 10/03/2007 11:01:30 PAGE 2
56 1 XXXFnct();
57 1
58 1 LjmpTable.Addr = (int)fnct1; //switch2 fnct1
59 1 XXXFnct();
60 1
61 1 LjmpTable.Addr = (int)fnct0; //switch2 fnct0
62 1 XXXFnct();
63 1
64 1
65 1 while(1);
66 1
67 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 58 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 3
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 + -