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

📄 serialkd.lst

📁 基于80196KB开发的C程序,在伟福和星研环境中编译通过,用于学习8096系列单片机的中断编程技术.并成功地用于某地机动车检测业务.
💻 LST
📖 第 1 页 / 共 2 页
字号:
  126     1                                                                       not a character avaliable. */
  127     1           if (++begin_rec_buff>RECEIVE_BUF_SIZE - 1)              /*  make buffer appear    */
          00AB  1704               R         incb    begin_rec_buff
          00AD  990104             R         cmpb    begin_rec_buff,#1
          00B0  DA02                         ble     @0014
  128     1               begin_rec_buff=0;                                   /*  circular.  */
          00B2  1104               R         clrb    begin_rec_buff
          00B4                        @0014: 
  129     1           return(receive_buff[begin_rec_buff]);                   /*  return the character in buffer. */
          00B4  BC041C             R         ldbse   Tmp0,begin_rec_buff
          00B7  AF1D02001C         R         ldbze   Tmp0,receive_buff[Tmp0]
          00BC  2000                         br      @001
  13      1       }
          00BE                        @001: 
          00BE  F0                           ret     
                                      
                ; Function Statistics for: getch
                ;    Code Size :   27     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :         Stack Depth    :   

  131             
  132             void init_serial_port(void)
  133             {
          00BF                        init_serial_port: 
          00BF  C800               R         push    ?OVRBASE
  134     1           unsigned char                 wsr_image = wsr;
          00C1  B00000             E         ldb     wsr_image,wsr
  135     1           wsr = 0;
          00C4  1100               E         clrb    wsr
  136     1           baud_rate = ((unsigned char) BAUD_REG);
          00C6  B17000             E         ldb     baud_rate,#7
  137     1           baud_rate = ((unsigned char) (BAUD_REG >> 8));
          00C9  B18200             E         ldb     baud_rate,#82H
  138     1           sp_con = 0x09;                                          /* mode 1,
          00CC  B10900             E         ldb     sp_con,#9
  139     1                                                                    * no parity,
  14      1                                                                    * receive enabled,
  141     1                                                                    * no 9th bit */
  142     1           status_temp = sp_stat | TI_BIT;
          00CF  B00000             E         ldb     status_temp,sp_stat
          00D2  912000             R         orb     status_temp,#2
C196  Compiler   SERIALKD                                                                   13-Dec-106 17:03:10  Page   6
                 Assembly Listing of Object Code


  143     1       
  144     1           end_rec_buff=0;                                         /* initialize buffer pointers        */
          00D5  1103               R         clrb    end_rec_buff
  145     1           begin_rec_buff=0;
          00D7  1104               R         clrb    begin_rec_buff
  146     1           end_trans_buff=0;
          00D9  1102               R         clrb    end_trans_buff
  147     1           begin_trans_buff=0;
          00DB  1101               R         clrb    begin_trans_buff
  148     1        
  149     1           int_mask1 = 0x03;                                       /* enable the serial port interrupts  */
          00DD  B10300             E         ldb     int_mask1,#3
  15      1           
  151     1           enable();                                               /* global enable of interrupts       */
          00E0  EF0000             E         call    enable
  152     1           wsr = wsr_image;                                        /* restore wsr */
          00E3  B00000             E         ldb     wsr,wsr_image
  153     1       }
          00E6  CC00               R         pop     ?OVRBASE
          00E8  F0                           ret     
                                      
                ; Function Statistics for: init_serial_port
                ;    Code Size :   42     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :    1     Stack Depth    :   4

  154             
  155             void main(void)
  156             {
          00E9                        main: 
          00E9  C800               R         push    ?OVRBASE
  157     1           char                          c;
  158     1           init_serial_port();
          00EB  2FD2                         call    init_serial_port
          00ED  203B                         br      @0018
          00EF                        @0017: 
  159     1           while((c=getch()) != 0x1b)                              /*  stay in loop till escape key pressed  
                -*/
  16      1            // printf("key pressed = %02X\n\r",c);
  161     1            putchar(c);
          00EF  A3010C001C         E         ld      Tmp0,_iob+0CH
          00F4  051C                         dec     Tmp0
          00F6  C3010C001C         E         st      Tmp0,_iob+0CH
          00FB  88001C                       cmp     Tmp0,R0
          00FE  DE1B                         blt     @001A
          0100  A3010A001C         E         ld      Tmp0,_iob+0AH
          0105  4501001C1E                   add     Tmp2,Tmp0,#1
          010A  C3010A001E         E         st      Tmp2,_iob+0AH
          010F  C61C00             R         stb     c,[Tmp0]
          0112  BE1C1C                       ldbse   Tmp0,[Tmp0]
          0115  61FF001C                     and     Tmp0,#0FFH
          0119  200F                         br      @001B
          011B                        @001A: 
          011B  C90A00             E         push    #_iob+0AH
          011E  AC001C             R         ldbze   Tmp0,c
          0121  C81C                         push    Tmp0
C196  Compiler   SERIALKD                                                                   13-Dec-106 17:03:10  Page   7
                 Assembly Listing of Object Code


          0123  EF0000             E         call    _flsbuf
          0126  65040018                     add     SP,#4
          012A                        @001B: 
                                             
          012A                        @0018: 
          012A  2F78                         call    getch
          012C  B01C00             R         ldb     c,Tmp0
          012F  991B1C                       cmpb    Tmp0,#1BH
          0132  D7BB                         bne     @0017
  162     1       }
          0134  CC00               R         pop     ?OVRBASE
          0136  F0                           ret     
                                      
                ; Function Statistics for: main
                ;    Code Size :   78     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :    1     Stack Depth    :  12

                                             end
C196  Compiler   SERIALKD                                                                   13-Dec-106 17:03:10  Page   8
                                   Symbol Table


  Name            Size    Class    Address    Attributes

  AD_ptscb        8       Typedef              struct AD_ptscb_t
  AD_ptscb_t      8       Tag                  struct
   ptscount       1       Member               unsigned char
   ptscon         1       Member   1           struct {anonymous}
    const1        .3      Member   .           unsigned field
    updt          .1      Member   .3          unsigned field
    const2        .1      Member   .4          unsigned field
    mode          .3      Member   .5          unsigned field
   s_d            2       Member   2           unsigned int
   reg            2       Member   4           unsigned int
  AD_tab          4       Typedef              struct AD_tab_t
  AD_tab_t        4       Tag                  struct
   AD_command     1       Member               unsigned char
   AD_result      2       Member   2           unsigned int
  BTran_ptscb     8       Typedef              struct BTran_ptscb_t
  BTran_ptscb_t   8       Tag                  struct
   ptscount       1       Member               unsigned char
   ptscon         1       Member   1           struct {anonymous}
    di            .1      Member   .           unsigned field
    si            .1      Member   .1          unsigned field
    du            .1      Member   .2          unsigned field
    su            .1      Member   .3          unsigned field
    b_w           .1      Member   .4          unsigned field
    mode          .3      Member   .5          unsigned field
   ptssrc         2       Member   2           pointer to void
   ptsdst         2       Member   4           pointer to void
   ptsblock       1       Member   6           unsigned char
  FILE            1       Typedef              struct _iobuf
  HSI_ptscb       8       Typedef              struct HSI_ptscb_t
  HSI_ptscb_t     8       Tag                  struct
   ptscount       1       Member               unsigned char
   ptscon         1       Member   1           struct {anonymous}
    const1        .3      Member   .           unsigned field
    updt          .1      Member   .3          unsigned field
    const2        .1      Member   .4          unsigned field
    mode          .3      Member   .5          unsigned field
   ptsdst         2       Member   2           unsigned int
   ptsblock       1       Member   6           unsigned char
  HSI_tab         4       Typedef              struct HSI_tab_t
  HSI_tab_t       4       Tag                  struct
   HSI_status_lo  1       Member               unsigned char
   HSI_status_hi  1       Member   1           unsigned char
   HSI_time       2       Member   2           unsigned int
  HSO_ptscb       8       Typedef              struct HSO_ptscb_t
  HSO_ptscb_t     8       Tag                  struct
   ptscount       1       Member               unsigned char
   ptscon         1       Member   1           struct {anonymous}
    const1        .3      Member   .           unsigned field
    updt          .1      Member   .3          unsigned field
    const2        .1      Member   .4          unsigned field
    mode          .3      Member   .5          unsigned field
   ptssrc         2       Member   2           unsigned int
   ptsblock       1       Member   6           unsigned char
  HSO_tab         4       Typedef              struct HSO_tab_t
C196  Compiler   SERIALKD                                                                   13-Dec-106 17:03:10  Page   9
                                   Symbol Table


  HSO_tab_t       4       Tag                  struct
   HSO_command    1       Member               unsigned char
   HSO_time       2       Member   2           unsigned int
  STran_ptscb     8       Typedef              struct STran_ptscb_t
  STran_ptscb_t   8       Tag                  struct
   ptscount       1       Member               unsigned char
   ptscon         1       Member   1           struct {anonymous}
    di            .1      Member   .           unsigned field
    si            .1      Member   .1          unsigned field
    du            .1      Member   .2          unsigned field
    su            .1      Member   .3          unsigned field
    b_w           .1      Member   .4          unsigned field
    mode          .3      Member   .5          unsigned field
   ptssrc         2       Member   2           pointer to void
   ptsdst         2       Member   4           pointer to void
  _flsbuf                 Extern               VPL function returning int
  _iob            2       Extern               array[2] of struct _iobuf
  _iobuf          1       Tag                  struct
   _ptr           2       Member               pointer to signed char
   _cnt           2       Member   2           int
   _base          2       Member   4           pointer to signed char
   _flag          1       Member   6           signed char
   _file          1       Member   7           signed char
   _bufsiz        2       Member   8           int
  baud_rate       1       Extern               register volatile unsigned char
  begin_rec_buff  1       Public   4           register signed char
  begin_trans_buff
                  1       Public   1           register signed char
  c               2       Auto     4           int in function(putch)
  c               1       Auto                 overlayable register signed char in function(main)
  ccr             2       Public   8216        located const unsigned int
  enable                  Extern               VPL function returning void
  end_rec_buff    1       Public   3           register signed char
  end_trans_buff  1       Public   2           register signed char
  fpos_t          4       Typedef              unsigned long
  getch                   Public               reentrant VPL function returning int
  init_serial_port
                          Public               reentrant VPL function returning void
  int_mask1       1       Extern               register volatile unsigned char
  int_pend1       1       Extern               register volatile unsigned char
  main                    Public               reentrant VPL function returning void
  putch                   Public               reentrant VPL function returning int
  receive                 Public               interrupt function returning void
  receive_buff    2       Public   2           array[2] of unsigned char
  sbuf            1       Extern               register volatile unsigned char
  size_t          2       Typedef              unsigned int
  sp_con          1       Extern               register volatile unsigned char
  sp_stat         1       Extern               register volatile unsigned char
  status_temp     1       Public               register unsigned char
  trans_buff      2       Public               array[2] of unsigned char
  transmit                Public               interrupt function returning void
  va_list         2       Typedef              array[1] of pointer to signed char
  wsr             1       Extern               register volatile unsigned char
  wsr_image       1       Auto                 initialized overlayable register unsigned char in function(init_serial_po
                                              -rt)
C196  Compiler   SERIALKD                                                                   13-Dec-106 17:03:10  Page  1

Module Information:

     Code Area Size             =   0137H       311D
     Constant Area Size         =   0002H         2D
     Data Area Size             =   0004H         4D
     Static Regs Area Size      =   0005H         5D
     Overlayable Regs Area Size =   0002H         2D
     Maximum Stack Size         =   0012H        18D

C196 Compilation Complete.      0 Warnings,     0 Errors

⌨️ 快捷键说明

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