📄 main.lst
字号:
C51 COMPILER V6.23a MAIN 11/05/2002 21:17:46 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c DEBUG OBJECTEXTEND
stmt level source
1 #include <REG52.H> /* special function register declarations */
2 /* for the intended 8051 derivative */
3
4 #include <stdio.h> /* prototype declarations for I/O functions */
5 #include <ctype.h>
6
7 #ifdef MONITOR51 /* Debugging with Monitor-51 needs */
char code reserve [3] _at_ 0x23; /* space for serial interrupt if */
#endif /* Stop Exection with Serial Intr. */
10 /* is enabled */
11
12 /*------------------------------------------------
13 The main C function. Program execution starts
14 here after stack initialization.
15 ------------------------------------------------*/
16 void main (void) {
17 1
18 1 double sum,atof( char s[ ]);
19 1 char sum1[10],sum2[10];
20 1 /*------------------------------------------------
21 1 Setup the serial port for 1200 baud at 16MHz.
22 1 ------------------------------------------------*/
23 1 #ifndef MONITOR51
24 1 SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
25 1 TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
26 1 TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
27 1 TR1 = 1; /* TR1: timer 1 run */
28 1 TI = 1; /* TI: set TI to send first char of UART */
29 1 #endif
30 1 /*------------------------------------------------
31 1 Note that an embedded program never exits (because
32 1 there is no operating system to return to). It
33 1 must loop and execute forever.
34 1 ------------------------------------------------*/
35 1 scanf("%s",sum1);
36 1 scanf("%s",sum2);
37 1 sum=atof(sum1)+atof(sum2);
38 1 printf("%s+%s=%f\n", sum1,sum2,sum);
39 1 while (1) {};
40 1 }
41
42 double atof( char s[ ])
43 {
44 1 double val, power;
45 1 int i, sign;
46 1 for ( i = 0; isspace(s[i]); i++ ) /* 跳过空白*/;
47 1 sign = (s[i] == '-' ) ? -1 : 1;
48 1 if ( s[i] == '+' || s[i] == '-' )
49 1 i++;
50 1 for (val = 0.0; isdigit(s[i]); i++)
51 1 val = 10.0 * val +(s[i] -'0' );
52 1 if (s[i] == '.')
53 1 i++;
54 1 for ( power = 1.0; isdigit(s[i]); i++) {
55 2 val = 10.0 * val +(s[i] -'0' );
C51 COMPILER V6.23a MAIN 11/05/2002 21:17:46 PAGE 2
56 2 power *= 10.0;
57 2 }
58 1 return sign * val / power;
59 1 }
60
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 549 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 35
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 + -