📄 c3.lst
字号:
C51 COMPILER V8.02 C3 09/10/2007 13:24:13 PAGE 1
C51 COMPILER V8.02, 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 void JmpTable(void)
21 {
22 1 fnct0();
23 1 fnct1();
24 1 fnct2();
25 1 }
26 //ljmp instruction
27 typedef struct {
28 unsigned char OpCode;
29 unsigned int Addr;
30 }LJMP_INST;
31 //
32 // von Neumann memory
33 // X: 0xE000~0xFFFF
34 //
35 // or xdata LJMP_INST LjmpTable _at_ JmpTable;
36 //
37 //
38 xdata LJMP_INST LjmpTable _at_ 0xE000;
39
40 #define XXXFnct ((void (code *) (void)) 0xE000)
41
42 //
43 // main()
44 //
45 void main(void)
46 {
47 1
48 1 // init
49 1 LjmpTable.OpCode = 0x2; //ljmp-opcode
50 1
51 1 LjmpTable.Addr = (int)fnct2; //switch2 fnct2
52 1 XXXFnct();
53 1
54 1 LjmpTable.Addr = (int)fnct1; //switch2 fnct1
55 1 XXXFnct();
C51 COMPILER V8.02 C3 09/10/2007 13:24:13 PAGE 2
56 1
57 1 LjmpTable.Addr = (int)fnct0; //switch2 fnct0
58 1 XXXFnct();
59 1
60 1 JmpTable(); //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -