📄 cacu.lst
字号:
C51 COMPILER V7.50 CACU 06/10/2008 20:20:35 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CACU
OBJECT MODULE PLACED IN Cacu.OBJ
COMPILER INVOKED BY: D:\edu\Software\keil\C51\BIN\C51.EXE Cacu.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 ****************************************************
3
4 计算
5
6 ****************************************************
7 */
8 #include "Typedef.H"
9 #include "UserDef.H"
10
11 /* 全局变量 */
12 static float OpVal[2] = {0,0}; //操作数
13 static INT8U OpAct = VK_NULL; //操作符
14
15
16
17 /***************************************
18
19 四则运算
20 入口参数:运算结果存储变量的指针
21 返回值:运算是否成功
22
23 ****************************************/
24 static BOOLEAN cacu(float *rv)
25 {
26 1 BOOLEAN valid;
27 1
28 1 valid = TRUE;
29 1 switch (OpAct)
30 1 {
31 2 case VK_ADD:
32 2 (*rv) = OpVal[0] + OpVal[1];
33 2 break;
34 2 case VK_SUB:
35 2 (*rv) = OpVal[0] - OpVal[1];
36 2 break;
37 2 case VK_MUL:
38 2 (*rv) = OpVal[0] * OpVal[1];
39 2 break;
40 2 case VK_DIV:
41 2 (*rv) = OpVal[0] / OpVal[1];
42 2 break;
43 2 default:
44 2 valid = FALSE;
45 2 break;
46 2 }
47 1 return valid;
48 1 }
49
50
51 /***************************************
52
53 运算相关按键输入及处理
54 入口参数:按键值,运算结果存储变量的指针
55 返回值:操作是否错误
C51 COMPILER V7.50 CACU 06/10/2008 20:20:35 PAGE 2
56
57 ****************************************/
58 BOOLEAN CacuInput(INT8U kv,float * rv)
59 {
60 1 static INT8U CurI = 0; //当前输入对应的操作数
61 1 BOOLEAN valid;
62 1
63 1 switch (kv)
64 1 {
65 2 case VK_0:
66 2 case VK_1:
67 2 case VK_2:
68 2 case VK_3:
69 2 case VK_4:
70 2 case VK_5:
71 2 case VK_6:
72 2 case VK_7:
73 2 case VK_8:
74 2 case VK_9:
75 2 OpVal[CurI] *= 10;
76 2 OpVal[CurI] += (kv - VK_0);
77 2 (*rv) = OpVal[CurI];
78 2 valid = TRUE;
79 2 break;
80 2
81 2 case VK_ADD:
82 2 case VK_SUB:
83 2 case VK_MUL:
84 2 case VK_DIV:
85 2 OpAct = kv;
86 2 CurI = 1;
87 2 OpVal[1] = 0;
88 2 valid = TRUE;
89 2 (*rv) = 0;
90 2 break;
91 2
92 2 case VK_EQU:
93 2 valid = cacu(rv);
94 2 OpVal[0] = *rv;
95 2 CurI = 1;
96 2 break;
97 2
98 2 case VK_CLR:
99 2 OpAct = VK_NULL;
100 2 CurI = 0;
101 2 OpVal[0] = OpVal[1] = 0;
102 2 (*rv) = 0;
103 2 valid = TRUE;
104 2 break;
105 2
106 2 default:
107 2 valid = FALSE;
108 2 break;
109 2 }
110 1
111 1 return valid;
112 1 }
113
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 374 ----
C51 COMPILER V7.50 CACU 06/10/2008 20:20:35 PAGE 3
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 7
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -