csample1.lst

来自「单片机快速入门原程序」· LST 代码 · 共 150 行

LST
150
字号
C51 COMPILER V7.50   CSAMPLE1                                                              06/02/2006 22:58:37 PAGE 1   


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

line level    source

   1          /*------------------------------------------------------------------------------
   2          CSAMPLE1.C
   3          
   4          Copyright 1995-1999 Keil Software, Inc.
   5          ------------------------------------------------------------------------------*/
   6          
   7          #include <reg51.h>                             /* define 8051 registers */
   8          #include <stdio.h>                             /* define I/O functions */
   9          
  10          //extern unsigned int getnumber (void);
  11          //extern void output (unsigned int);
  12          #include"CSAMPLE2.h"
  13          #include"CSAMPLE3.h"
  14          #include"CSAMPLE3.h"
  15          extern output (unsigned int number);
  16          
  17          void main (void)  {                            /* main program */
  18   1        unsigned int number1, number2;               /* define operation registers */
  19   1        bit operation;                               /* define operation */
  20   1      
  21   1        SCON = 0x52;    /* SCON */                   /* setup serial port control */
  22   1        TMOD = 0x20;    /* TMOD */                   /* hardware (2400 BAUD @12MHZ) */
  23   1        TCON = 0x69;    /* TCON */
  24   1        TH1 =  0xf3;    /* TH1 */
  25   1      
  26   1        printf ("\n\nC compiler demonstration program\n\n");
  27   1      
  28   1        while (1)  {                                 /* repeat forever */
  29   2          number1 = getnumber ();                    /* read number1 */
  30   2          number2 = getnumber ();                    /* read number2 */
  31   2          printf ("Input operation: '+' (ADD) or '-' (SUB) ? ");
  32   2          operation = (getchar () == '+');           /* get operation */
  33   2          output (operation ? (number1 + number2)    /* perform operation */
  34   2                            : (number1 - number2) );
  35   2        }
  36   1      }
C51 COMPILER V7.50   CSAMPLE1                                                              06/02/2006 22:58:37 PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 17
                                           ; SOURCE LINE # 21
0000 759852            MOV     SCON,#052H
                                           ; SOURCE LINE # 22
0003 758920            MOV     TMOD,#020H
                                           ; SOURCE LINE # 23
0006 758869            MOV     TCON,#069H
                                           ; SOURCE LINE # 24
0009 758DF3            MOV     TH1,#0F3H
                                           ; SOURCE LINE # 26
000C 7BFF              MOV     R3,#0FFH
000E 7A00        R     MOV     R2,#HIGH ?SC_0
0010 7900        R     MOV     R1,#LOW ?SC_0
0012 120000      E     LCALL   _printf
0015         ?C0001:
                                           ; SOURCE LINE # 28
                                           ; SOURCE LINE # 29
0015 120000      E     LCALL   getnumber
0018 8E00        R     MOV     number1,R6
001A 8F00        R     MOV     number1+01H,R7
                                           ; SOURCE LINE # 30
001C 120000      E     LCALL   getnumber
001F 8E00        R     MOV     number2,R6
0021 8F00        R     MOV     number2+01H,R7
                                           ; SOURCE LINE # 31
0023 7BFF              MOV     R3,#0FFH
0025 7A00        R     MOV     R2,#HIGH ?SC_37
0027 7900        R     MOV     R1,#LOW ?SC_37
0029 120000      E     LCALL   _printf
                                           ; SOURCE LINE # 32
002C 120000      E     LCALL   getchar
002F BF2B03            CJNE    R7,#02BH,?C0003
0032 D3                SETB    C
0033 8001              SJMP    ?C0004
0035         ?C0003:
0035 C3                CLR     C
0036         ?C0004:
0036 9200        R     MOV     operation,C
                                           ; SOURCE LINE # 33
0038 30000C      R     JNB     operation,?C0005
003B E500        R     MOV     A,number1+01H
003D 2500        R     ADD     A,number2+01H
003F FF                MOV     R7,A
0040 E500        R     MOV     A,number1
0042 3500        R     ADDC    A,number2
0044 FE                MOV     R6,A
0045 800B              SJMP    ?C0006
0047         ?C0005:
0047 C3                CLR     C
0048 E500        R     MOV     A,number1+01H
004A 9500        R     SUBB    A,number2+01H
004C FF                MOV     R7,A
004D E500        R     MOV     A,number1
004F 9500        R     SUBB    A,number2
0051 FE                MOV     R6,A
0052         ?C0006:
0052 120000      E     LCALL   _output
                                           ; SOURCE LINE # 35
C51 COMPILER V7.50   CSAMPLE1                                                              06/02/2006 22:58:37 PAGE 3   

0055 80BE              SJMP    ?C0001
0057 22                RET     
             ; FUNCTION main (END)

C51 COMPILER V7.50   CSAMPLE1                                                              06/02/2006 22:58:37 PAGE 4   

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


size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
_output. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  number1. . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  number2. . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
  operation. . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
getnumber. . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
getchar. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
_printf. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     88    ----
   CONSTANT SIZE    =     80    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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