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

📄 bitop.lst

📁 一个流量控制仪器的源码
💻 LST
字号:
C51 COMPILER V7.07   BITOP                                                                 07/08/2004 05:56:11 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE BITOP
OBJECT MODULE PLACED IN .\Output\BitOp.obj
COMPILER INVOKED BY: M:\Keil\C51\BIN\C51.EXE BitOp.C ROM(COMPACT) BROWSE MODP2 DEBUG OBJECTEXTEND CODE LISTINCLUDE SYMBO
                    -LS PRINT(.\List\BitOp.lst) OBJECT(.\Output\BitOp.obj)

stmt level    source

   1          /***********************************************************************************
   2          C51 位操作函数库  BitOp.C
   3          
   4          MCU 型号: Philips P89C668
   5          时钟频率: 11.0592 MHz           6Clock
   6          开发环境: Keil C51 V7.06        
   7          开发日期: 2003.09.17
   8          程序编写: BaoFang
   9                  
  10          ***********************************************************************************/
  11          
  12          /*宏uchar定义*/ 
  13          #define uchar unsigned char
  14          
  15          
  16          uchar code uc8Bit_value[8]={1,2,4,8,16,32,64,128};
  17          
  18          
  19          /*******************************************************************
  20                                  测试变量某一位是否为‘1’
  21          函数原型: uchar fnBitTest(uchar ucNumTest,uchar ucBitNum)
  22          功能: 测试变量某一位是否为‘1’
  23                返回0--否
  24                返回1--是
  25          变量:ucNumTest为待测试的数
  26                ucBitNum为位数,其值从 0到7
  27          *******************************************************************/
  28          uchar fnBitTest(uchar ucNumTest,uchar ucBitNum)
  29          {
  30   1              if( ucNumTest>> ucBitNum & 0x01 == 1 )
  31   1      
  32   1                      return 1;
  33   1      
  34   1              else
  35   1      
  36   1                      return 0;
  37   1      }
  38          
  39          /*******************************************************************
  40                                  清除某一位
  41          函数原型: uchar fnBitClr(uchar ucNumTest,uchar ucBitNum)
  42          功能: 清除某一位
  43                返回结果
  44          变量:ucNumTest为待清除的数
  45                ucBitNum为位数,其值从 0到7
  46          *******************************************************************/
  47          uchar fnBitClr(uchar ucNumTest,uchar ucBitNum)
  48          {
  49   1      
  50   1              return ucNumTest & ~uc8Bit_value[ucBitNum];
  51   1      
  52   1      }
  53          
  54          
C51 COMPILER V7.07   BITOP                                                                 07/08/2004 05:56:11 PAGE 2   

  55          /*******************************************************************
  56                                  设置某一位
  57          函数原型: uchar fnBitSet(uchar ucNumTest,uchar ucBitNum)
  58          功能: 设置某一位
  59                返回结果
  60          变量:ucNumTest为待设置的数
  61                ucBitNum为位数,其值从 0到7
  62          *******************************************************************/
  63          uchar fnBitSet(uchar ucNumTest,uchar ucBitNum)
  64          {
  65   1      
  66   1              return ucNumTest | uc8Bit_value[ucBitNum];
  67   1      
  68   1      }
  69          
  70          
  71          /*******************************************************************
  72                                  取反某一位
  73          函数原型: uchar fnBitCpl(uchar ucNumTest,uchar ucBitNum)
  74          功能: 取反某一位
  75                返回结果
  76          变量:ucNumTest为待取反的数
  77                ucBitNum为位数,其值从 0到7
  78          *******************************************************************/
  79          uchar fnBitCpl(uchar ucNumTest,uchar ucBitNum)
  80          {
  81   1      
  82   1              if( ucNumTest>> ucBitNum & 0x01 == 1 )
  83   1      
  84   1                      return ucNumTest & ~uc8Bit_value[ucBitNum];
  85   1      
  86   1              else
  87   1      
  88   1                      return ucNumTest | uc8Bit_value[ucBitNum];
  89   1      }
  90          
C51 COMPILER V7.07   BITOP                                                                 07/08/2004 05:56:11 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _fnBitTest (BEGIN)
                                           ; SOURCE LINE # 28
;---- Variable 'ucBitNum' assigned to Register 'R5' ----
;---- Variable 'ucNumTest' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 29
                                           ; SOURCE LINE # 30
0000 AE05              MOV     R6,AR5
0002 EF                MOV     A,R7
0003 A806              MOV     R0,AR6
0005 08                INC     R0
0006 8002              SJMP    ?C0010
0008         ?C0009:
0008 C3                CLR     C
0009 13                RRC     A
000A         ?C0010:
000A D8FC              DJNZ    R0,?C0009
000C 30E003            JNB     ACC.0,?C0001
                                           ; SOURCE LINE # 32
000F 7F01              MOV     R7,#01H
0011 22                RET     
0012         ?C0001:
                                           ; SOURCE LINE # 36
0012 7F00              MOV     R7,#00H
                                           ; SOURCE LINE # 37
0014         ?C0002:
0014 22                RET     
             ; FUNCTION _fnBitTest (END)

             ; FUNCTION _fnBitClr (BEGIN)
                                           ; SOURCE LINE # 47
;---- Variable 'ucBitNum' assigned to Register 'R5' ----
;---- Variable 'ucNumTest' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 48
                                           ; SOURCE LINE # 50
0000 ED                MOV     A,R5
0001 900000      R     MOV     DPTR,#uc8Bit_value
0004 93                MOVC    A,@A+DPTR
0005 F4                CPL     A
0006 5F                ANL     A,R7
0007 FF                MOV     R7,A
                                           ; SOURCE LINE # 52
0008         ?C0004:
0008 22                RET     
             ; FUNCTION _fnBitClr (END)

             ; FUNCTION _fnBitSet (BEGIN)
                                           ; SOURCE LINE # 63
;---- Variable 'ucBitNum' assigned to Register 'R5' ----
;---- Variable 'ucNumTest' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 64
                                           ; SOURCE LINE # 66
0000 ED                MOV     A,R5
0001 900000      R     MOV     DPTR,#uc8Bit_value
0004 93                MOVC    A,@A+DPTR
0005 4F                ORL     A,R7
0006 FF                MOV     R7,A
                                           ; SOURCE LINE # 68
0007         ?C0005:
0007 22                RET     
C51 COMPILER V7.07   BITOP                                                                 07/08/2004 05:56:11 PAGE 4   

             ; FUNCTION _fnBitSet (END)

             ; FUNCTION _fnBitCpl (BEGIN)
                                           ; SOURCE LINE # 79
;---- Variable 'ucBitNum' assigned to Register 'R5' ----
;---- Variable 'ucNumTest' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 80
                                           ; SOURCE LINE # 82
0000 EF                MOV     A,R7
0001 A805              MOV     R0,AR5
0003 08                INC     R0
0004 8002              SJMP    ?C0012
0006         ?C0011:
0006 C3                CLR     C
0007 13                RRC     A
0008         ?C0012:
0008 D8FC              DJNZ    R0,?C0011
000A 30E009            JNB     ACC.0,?C0006
                                           ; SOURCE LINE # 84
000D ED                MOV     A,R5
000E 900000      R     MOV     DPTR,#uc8Bit_value
0011 93                MOVC    A,@A+DPTR
0012 F4                CPL     A
0013 5F                ANL     A,R7
0014 FF                MOV     R7,A
0015 22                RET     
0016         ?C0006:
                                           ; SOURCE LINE # 88
0016 ED                MOV     A,R5
0017 900000      R     MOV     DPTR,#uc8Bit_value
001A 93                MOVC    A,@A+DPTR
001B 4F                ORL     A,R7
001C FF                MOV     R7,A
                                           ; SOURCE LINE # 89
001D         ?C0007:
001D 22                RET     
             ; FUNCTION _fnBitCpl (END)

C51 COMPILER V7.07   BITOP                                                                 07/08/2004 05:56:11 PAGE 5   

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


_fnBitSet. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ucNumTest. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ucBitNum . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
uc8Bit_value . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  8
_fnBitCpl. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ucNumTest. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ucBitNum . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
_fnBitClr. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ucNumTest. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ucBitNum . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
_fnBitTest . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ucNumTest. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ucBitNum . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     68    ----
   CONSTANT SIZE    =      8    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -