📄 exp1.lst
字号:
C51 COMPILER V7.20 EXP1 10/09/2007 16:59:21 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE EXP1
OBJECT MODULE PLACED IN exp1.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FsmSource\exp1.c BROWSE DEBUG OBJECTEXTEND CODE PRINT(.\exp1.lst) OBJECT(ex
-p1.obj)
line level source
1 /***************************************************************************
2 **Filename : exp1.c 状态转换例程文件
3 * Programmer : Haven
4 **Date : 2007.9.24
5 **DESCRIPTION: 定义了几个状态转换函数
6 **************************************************************************
7 */
8 #include "FsmSmall.h"
9 #include "REG935.H"
10 #define USER1_SIG Q_USER_SIG
11 /*--------------------------------------------------------------------------*/
12 void EXP_ctor(void);
13 void EXP_initial(QFsm *me);
14 void EXP_Stat1(QFsm *me);
15 void EXP_Stat2(QFsm *me);
16 void EXP_Stat1EntryAct(void);
17 void EXP_Stat1ExitAct(void);
18 void EXP_Stat2EntryAct(void);
19 void EXP_Stat2ExitAct(void);
20
21 /*..........................................................................*/
22 static QFsm Qexp;
23
24 void main(void)
25 {
26 1 EXP_ctor(); //构造函数
27 1 Q_SIG((QFsm *)&Qexp) = Q_TOP_INIT_SIG;
28 1 EXP_initial(&Qexp); //初始伪状态
29 1 while(1){
30 2 Q_SIG((QFsm *)&Qexp) = ((QSignal)USER1_SIG);
31 2 //给一个事件,用于测试
32 2 //接收事件
33 2 QFsm_dispatch(&Qexp); //分发事件
34 2 }
35 1 }
36
37 void EXP_ctor()
38 {
39 1 }
40 /*..........................................................................*/
41 void EXP_initial(QFsm *me)
42 {
43 1 switch (Q_SIG(me)) {
44 2 case Q_TOP_INIT_SIG: {
45 3 Q_TRAN(&EXP_Stat1);
46 3 break;
47 3 }
48 2 }
49 1 }
50 /*..........................................................................*/
51
52 void EXP_Stat1(QFsm *me)
53 {
54 1 switch (Q_SIG(me)) {
C51 COMPILER V7.20 EXP1 10/09/2007 16:59:21 PAGE 2
55 2 case Q_ENTRY_SIG: {
56 3 EXP_Stat2EntryAct();
57 3 break;
58 3 }
59 2 case USER1_SIG: {
60 3 Q_TRAN(&EXP_Stat2);
61 3 break;
62 3 }
63 2 case Q_EXIT_SIG:{
64 3 EXP_Stat1ExitAct();
65 3 break;
66 3 }
67 2 }
68 1 }
69 /*..........................................................................*/
70 /*..........................................................................*/
71 void EXP_Stat2(QFsm *me)
72 {
73 1 switch (Q_SIG(me)) {
74 2 case Q_ENTRY_SIG: {
75 3 EXP_Stat1EntryAct();
76 3 break;
77 3 }
78 2 case USER1_SIG: {
79 3 Q_TRAN(&EXP_Stat1);
80 3 break;
81 3 }
82 2 case Q_EXIT_SIG:{
83 3 EXP_Stat2ExitAct();
84 3 break;
85 3 }
86 2 }
87 1 }
88
89 void EXP_Stat1EntryAct()
90 {
91 1 }
92 void EXP_Stat1ExitAct()
93 {
94 1 }
95 void EXP_Stat2EntryAct()
96 {
97 1 }
98 void EXP_Stat2ExitAct()
99 {
100 1 }
C51 COMPILER V7.20 EXP1 10/09/2007 16:59:21 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 24
; SOURCE LINE # 25
; SOURCE LINE # 26
0000 120000 R LCALL EXP_ctor
; SOURCE LINE # 27
0003 750003 R MOV Qexp,#03H
; SOURCE LINE # 28
0006 7B00 MOV R3,#00H
0008 7A00 R MOV R2,#HIGH Qexp
000A 7900 R MOV R1,#LOW Qexp
000C 120000 R LCALL _EXP_initial
000F ?C0001:
; SOURCE LINE # 29
; SOURCE LINE # 30
000F 750005 R MOV Qexp,#05H
; SOURCE LINE # 33
0012 7B00 MOV R3,#00H
0014 7A00 R MOV R2,#HIGH Qexp
0016 7900 R MOV R1,#LOW Qexp
0018 120000 E LCALL _?QFsm_dispatch
; SOURCE LINE # 34
001B 80F2 SJMP ?C0001
; FUNCTION main (END)
; FUNCTION EXP_ctor (BEGIN)
; SOURCE LINE # 37
; SOURCE LINE # 38
; SOURCE LINE # 39
0000 22 RET
; FUNCTION EXP_ctor (END)
; FUNCTION _EXP_initial (BEGIN)
; SOURCE LINE # 41
0000 8B00 R MOV me,R3
0002 8A00 R MOV me+01H,R2
0004 8900 R MOV me+02H,R1
; SOURCE LINE # 42
; SOURCE LINE # 43
0006 120000 E LCALL ?C?CLDPTR
0009 24FD ADD A,#0FDH
000B 7022 JNZ ?C0007
; SOURCE LINE # 44
000D ?C0006:
; SOURCE LINE # 45
000D 7BFF MOV R3,#0FFH
000F 7A00 R MOV R2,#HIGH _EXP_Stat1
0011 7900 R MOV R1,#LOW _EXP_Stat1
0013 C003 PUSH AR3
0015 C002 PUSH AR2
0017 C001 PUSH AR1
0019 AB00 R MOV R3,me
001B AA00 R MOV R2,me+01H
001D A900 R MOV R1,me+02H
001F 900001 MOV DPTR,#01H
0022 120000 E LCALL ?C?PSTOPTR
0025 AB00 R MOV R3,me
0027 AA00 R MOV R2,me+01H
0029 A900 R MOV R1,me+02H
C51 COMPILER V7.20 EXP1 10/09/2007 16:59:21 PAGE 4
002B E4 CLR A
002C 120000 E LCALL ?C?CSTPTR
; SOURCE LINE # 46
; SOURCE LINE # 47
; SOURCE LINE # 48
; SOURCE LINE # 49
002F ?C0007:
002F 22 RET
; FUNCTION _EXP_initial (END)
; FUNCTION _EXP_Stat1 (BEGIN)
; SOURCE LINE # 52
0000 8B00 R MOV me,R3
0002 8A00 R MOV me+01H,R2
0004 8900 R MOV me+02H,R1
; SOURCE LINE # 53
; SOURCE LINE # 54
0006 120000 E LCALL ?C?CLDPTR
0009 24FE ADD A,#0FEH
000B 602D JZ ?C0011
000D 24FD ADD A,#0FDH
000F 6007 JZ ?C0010
0011 2404 ADD A,#04H
0013 7028 JNZ ?C0012
; SOURCE LINE # 55
0015 ?C0009:
; SOURCE LINE # 56
0015 020000 R LJMP EXP_Stat2EntryAct
; SOURCE LINE # 57
; SOURCE LINE # 58
; SOURCE LINE # 59
0018 ?C0010:
; SOURCE LINE # 60
0018 7BFF MOV R3,#0FFH
001A 7A00 R MOV R2,#HIGH _EXP_Stat2
001C 7900 R MOV R1,#LOW _EXP_Stat2
001E C003 PUSH AR3
0020 C002 PUSH AR2
0022 C001 PUSH AR1
0024 AB00 R MOV R3,me
0026 AA00 R MOV R2,me+01H
0028 A900 R MOV R1,me+02H
002A 900001 MOV DPTR,#01H
002D 120000 E LCALL ?C?PSTOPTR
0030 AB00 R MOV R3,me
0032 AA00 R MOV R2,me+01H
0034 A900 R MOV R1,me+02H
0036 E4 CLR A
0037 020000 E LJMP ?C?CSTPTR
; SOURCE LINE # 61
; SOURCE LINE # 62
; SOURCE LINE # 63
003A ?C0011:
; SOURCE LINE # 64
003A 120000 R LCALL EXP_Stat1ExitAct
; SOURCE LINE # 65
; SOURCE LINE # 66
; SOURCE LINE # 67
; SOURCE LINE # 68
003D ?C0012:
003D 22 RET
; FUNCTION _EXP_Stat1 (END)
C51 COMPILER V7.20 EXP1 10/09/2007 16:59:21 PAGE 5
; FUNCTION _EXP_Stat2 (BEGIN)
; SOURCE LINE # 71
0000 8B00 R MOV me,R3
0002 8A00 R MOV me+01H,R2
0004 8900 R MOV me+02H,R1
; SOURCE LINE # 72
; SOURCE LINE # 73
0006 120000 E LCALL ?C?CLDPTR
0009 24FE ADD A,#0FEH
000B 602D JZ ?C0016
000D 24FD ADD A,#0FDH
000F 6007 JZ ?C0015
0011 2404 ADD A,#04H
0013 7028 JNZ ?C0017
; SOURCE LINE # 74
0015 ?C0014:
; SOURCE LINE # 75
0015 020000 R LJMP EXP_Stat1EntryAct
; SOURCE LINE # 76
; SOURCE LINE # 77
; SOURCE LINE # 78
0018 ?C0015:
; SOURCE LINE # 79
0018 7BFF MOV R3,#0FFH
001A 7A00 R MOV R2,#HIGH _EXP_Stat1
001C 7900 R MOV R1,#LOW _EXP_Stat1
001E C003 PUSH AR3
0020 C002 PUSH AR2
0022 C001 PUSH AR1
0024 AB00 R MOV R3,me
0026 AA00 R MOV R2,me+01H
0028 A900 R MOV R1,me+02H
002A 900001 MOV DPTR,#01H
002D 120000 E LCALL ?C?PSTOPTR
0030 AB00 R MOV R3,me
0032 AA00 R MOV R2,me+01H
0034 A900 R MOV R1,me+02H
0036 E4 CLR A
0037 020000 E LJMP ?C?CSTPTR
; SOURCE LINE # 80
; SOURCE LINE # 81
; SOURCE LINE # 82
003A ?C0016:
; SOURCE LINE # 83
003A 120000 R LCALL EXP_Stat2ExitAct
; SOURCE LINE # 84
; SOURCE LINE # 85
; SOURCE LINE # 86
; SOURCE LINE # 87
003D ?C0017:
003D 22 RET
; FUNCTION _EXP_Stat2 (END)
; FUNCTION EXP_Stat1EntryAct (BEGIN)
; SOURCE LINE # 89
; SOURCE LINE # 90
; SOURCE LINE # 91
0000 22 RET
; FUNCTION EXP_Stat1EntryAct (END)
; FUNCTION EXP_Stat1ExitAct (BEGIN)
C51 COMPILER V7.20 EXP1 10/09/2007 16:59:21 PAGE 6
; SOURCE LINE # 92
; SOURCE LINE # 93
; SOURCE LINE # 94
0000 22 RET
; FUNCTION EXP_Stat1ExitAct (END)
; FUNCTION EXP_Stat2EntryAct (BEGIN)
; SOURCE LINE # 95
; SOURCE LINE # 96
; SOURCE LINE # 97
0000 22 RET
; FUNCTION EXP_Stat2EntryAct (END)
; FUNCTION EXP_Stat2ExitAct (BEGIN)
; SOURCE LINE # 98
; SOURCE LINE # 99
; SOURCE LINE # 100
0000 22 RET
; FUNCTION EXP_Stat2ExitAct (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 206 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 9
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -