⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csample2.lst

📁 单片机快速入门原程序
💻 LST
字号:
C51 COMPILER V7.50   CSAMPLE2                                                              03/12/2006 10:37:13 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE CSAMPLE2
OBJECT MODULE PLACED IN CSAMPLE2.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE CSAMPLE2.C HOLD(128,0,0) OPTIMIZE(6,SPEED) REGFILE(.\CSample.ORC) BROWSE DE
                    -BUG OBJECTEXTEND CODE SYMBOLS

line level    source

   1          /*------------------------------------------------------------------------------
   2          CSAMPLE2.C
   3          
   4          Copyright 1995-1999 Keil Software, Inc.
   5          ------------------------------------------------------------------------------*/
   6          
   7          #include <stdio.h>                             /* define I/O functions */
   8          
   9          void getline (char *line)  {
  10   1        while ((*line++ = getchar()) != '\n');
  11   1      }
  12          
  13          int atoi (char *line)  {
  14   1        bit sign;
  15   1        int number;
  16   1      
  17   1        /* skip white space */
  18   1        for ( ; *line == ' ' || *line == '\n' || *line == '\t'; line++);
  19   1      
  20   1        /* establish sign */
  21   1        sign = 1;
  22   1        if (*line == '+' || *line == '-')  sign = (*line++ == '+');
  23   1      
  24   1        /* compute decimal value */
  25   1        for (number=0; *line >= '0' && *line <= '9'; line++)
  26   1          number = (number * 10) + (*line - '0');
  27   1      
  28   1        return (sign ? number : -number);
  29   1      }
  30          
  31          unsigned int getnumber (void)  {
  32   1        char line [40];
  33   1        
  34   1        printf ("Input Number ? ");
  35   1        getline (line);
  36   1        return (atoi (line));
  37   1      }
  38          
C51 COMPILER V7.50   CSAMPLE2                                                              03/12/2006 10:37:13 PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _getline (BEGIN)
                                           ; SOURCE LINE # 9
0000 8B00        R     MOV     line,R3
0002 8A00        R     MOV     line+01H,R2
0004 8900        R     MOV     line+02H,R1
0006         ?C0001:
                                           ; SOURCE LINE # 10
0006 120000      E     LCALL   getchar
0009 AB00        R     MOV     R3,line
000B 0500        R     INC     line+02H
000D E500        R     MOV     A,line+02H
000F AA00        R     MOV     R2,line+01H
0011 7002              JNZ     ?C0019
0013 0500        R     INC     line+01H
0015         ?C0019:
0015 14                DEC     A
0016 F9                MOV     R1,A
0017 EF                MOV     A,R7
0018 120000      E     LCALL   ?C?CSTPTR
001B BF0AE8            CJNE    R7,#0AH,?C0001
                                           ; SOURCE LINE # 11
001E         ?C0003:
001E 22                RET     
             ; FUNCTION _getline (END)

             ; FUNCTION _atoi (BEGIN)
                                           ; SOURCE LINE # 13
0000 8B00        R     MOV     line,R3
0002 8A00        R     MOV     line+01H,R2
0004 8900        R     MOV     line+02H,R1
                                           ; SOURCE LINE # 18
0006         ?C0004:
0006 AB00        R     MOV     R3,line
0008 AA00        R     MOV     R2,line+01H
000A A900        R     MOV     R1,line+02H
000C 120000      E     LCALL   ?C?CLDPTR
000F FF                MOV     R7,A
0010 6420              XRL     A,#020H
0012 6009              JZ      ?C0006
0014 EF                MOV     A,R7
0015 640A              XRL     A,#0AH
0017 6004              JZ      ?C0006
0019 EF                MOV     A,R7
001A B4090D            CJNE    A,#09H,?C0005
001D         ?C0006:
001D 7401              MOV     A,#01H
001F 2500        R     ADD     A,line+02H
0021 F500        R     MOV     line+02H,A
0023 E4                CLR     A
0024 3500        R     ADDC    A,line+01H
0026 F500        R     MOV     line+01H,A
0028 80DC              SJMP    ?C0004
002A         ?C0005:
                                           ; SOURCE LINE # 21
002A D200        R     SETB    sign
                                           ; SOURCE LINE # 22
002C EF                MOV     A,R7
002D 642B              XRL     A,#02BH
002F 600C              JZ      ?C0009
C51 COMPILER V7.50   CSAMPLE2                                                              03/12/2006 10:37:13 PAGE 3   

0031 AB00        R     MOV     R3,line
0033 AA00        R     MOV     R2,line+01H
0035 A900        R     MOV     R1,line+02H
0037 120000      E     LCALL   ?C?CLDPTR
003A B42D1A            CJNE    A,#02DH,?C0008
003D         ?C0009:
003D AB00        R     MOV     R3,line
003F 0500        R     INC     line+02H
0041 E500        R     MOV     A,line+02H
0043 AA00        R     MOV     R2,line+01H
0045 7002              JNZ     ?C0020
0047 0500        R     INC     line+01H
0049         ?C0020:
0049 14                DEC     A
004A F9                MOV     R1,A
004B 120000      E     LCALL   ?C?CLDPTR
004E B42B03            CJNE    A,#02BH,?C0010
0051 D3                SETB    C
0052 8001              SJMP    ?C0011
0054         ?C0010:
0054 C3                CLR     C
0055         ?C0011:
0055 9200        R     MOV     sign,C
0057         ?C0008:
                                           ; SOURCE LINE # 25
0057 E4                CLR     A
0058 F500        R     MOV     number,A
005A F500        R     MOV     number+01H,A
005C         ?C0012:
005C AB00        R     MOV     R3,line
005E AA00        R     MOV     R2,line+01H
0060 A900        R     MOV     R1,line+02H
0062 120000      E     LCALL   ?C?CLDPTR
0065 FF                MOV     R7,A
0066 C3                CLR     C
0067 6480              XRL     A,#080H
0069 94B0              SUBB    A,#0B0H
006B 4035              JC      ?C0013
006D D3                SETB    C
006E EF                MOV     A,R7
006F 6480              XRL     A,#080H
0071 94B9              SUBB    A,#0B9H
0073 502D              JNC     ?C0013
                                           ; SOURCE LINE # 26
0075 EF                MOV     A,R7
0076 33                RLC     A
0077 95E0              SUBB    A,ACC
0079 FE                MOV     R6,A
007A EF                MOV     A,R7
007B 24D0              ADD     A,#0D0H
007D FB                MOV     R3,A
007E EE                MOV     A,R6
007F 34FF              ADDC    A,#0FFH
0081 FA                MOV     R2,A
0082 AE00        R     MOV     R6,number
0084 AF00        R     MOV     R7,number+01H
0086 7C00              MOV     R4,#00H
0088 7D0A              MOV     R5,#0AH
008A 120000      E     LCALL   ?C?IMUL
008D EF                MOV     A,R7
008E 2B                ADD     A,R3
008F F500        R     MOV     number+01H,A
C51 COMPILER V7.50   CSAMPLE2                                                              03/12/2006 10:37:13 PAGE 4   

0091 EE                MOV     A,R6
0092 3A                ADDC    A,R2
0093 F500        R     MOV     number,A
0095 7401              MOV     A,#01H
0097 2500        R     ADD     A,line+02H
0099 F500        R     MOV     line+02H,A
009B E4                CLR     A
009C 3500        R     ADDC    A,line+01H
009E F500        R     MOV     line+01H,A
00A0 80BA              SJMP    ?C0012
00A2         ?C0013:
                                           ; SOURCE LINE # 28
00A2 300006      R     JNB     sign,?C0015
00A5 AE00        R     MOV     R6,number
00A7 AF00        R     MOV     R7,number+01H
00A9 8009              SJMP    ?C0016
00AB         ?C0015:
00AB C3                CLR     C
00AC E4                CLR     A
00AD 9500        R     SUBB    A,number+01H
00AF FF                MOV     R7,A
00B0 E4                CLR     A
00B1 9500        R     SUBB    A,number
00B3 FE                MOV     R6,A
00B4         ?C0016:
                                           ; SOURCE LINE # 29
00B4         ?C0017:
00B4 22                RET     
             ; FUNCTION _atoi (END)

             ; FUNCTION getnumber (BEGIN)
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 34
0000 7BFF              MOV     R3,#0FFH
0002 7A00        R     MOV     R2,#HIGH ?SC_0
0004 7900        R     MOV     R1,#LOW ?SC_0
0006 120000      E     LCALL   _printf
                                           ; SOURCE LINE # 35
0009 7B00              MOV     R3,#00H
000B 7A00        R     MOV     R2,#HIGH line
000D 7900        R     MOV     R1,#LOW line
000F 120000      R     LCALL   _getline
                                           ; SOURCE LINE # 36
0012 7B00              MOV     R3,#00H
0014 7A00        R     MOV     R2,#HIGH line
0016 7900        R     MOV     R1,#LOW line
0018 120000      R     LCALL   _atoi
                                           ; SOURCE LINE # 37
001B         ?C0018:
001B 22                RET     
             ; FUNCTION getnumber (END)

C51 COMPILER V7.50   CSAMPLE2                                                              03/12/2006 10:37:13 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


_atoi. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  line . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  sign . . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
  number . . . . . . . . . . . . . . .  AUTO     DATA   INT      0003H  2
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
_getline . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  line . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
getnumber. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  line . . . . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0000H  40
getchar. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
_printf. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    240    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      48
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -