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

📄 gpr.lst

📁 C51驱动标准PC键盘的程序
💻 LST
字号:
C51 COMPILER V6.12  GPR                                                                    03/03/2007 18:29:42 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE GPR
OBJECT MODULE PLACED IN .\Gpr.OBJ
COMPILER INVOKED BY: F:\TaryInstalled\KeilV60CHS\C51\BIN\C51.EXE .\Gpr.c ROM(SMALL) DEBUG OBJECTEXTEND CODE LISTINCLUDE 
                    -SYMBOLS

stmt level    source

   1          #include "Gpr.h"
   1      =1  #ifndef __GPR_H__
   2      =1  #define __GPR_H__
   3      =1  
   4      =1  void print_hexbyte(unsigned char i);
   5      =1  void delay(char d);
   6      =1  
   7      =1  #endif // __GPR_H__
   8      =1  
   2          #include "Kb.h"
   1      =1  #ifndef __KB_H__
   2      =1  #define __KB_H__
   3      =1  
   4      =1  
   5      =1  void init_kb(void);
   6      =1  void decode(unsigned char sc);
   7      =1  void put_kbbuff(unsigned char c);
   8      =1  int getchar(void);
   9      =1  
  10      =1  
  11      =1  #endif // __KB_H__
  12      =1  
   3          
   4          void print_hexbyte(unsigned char i)
   5          {
   6   1      	unsigned char h, l;
   7   1      
   8   1      	h = i & 0xF0; 		// High nibble
   9   1      	h = h >> 4;
  10   1      	h = h + '0';
  11   1      	if (h > '9')
  12   1      		h = h + 7;
  13   1      	l = (i & 0x0F) + '0';	// Low nibble
  14   1      	if (l > '9')
  15   1      		l = l + 7;
  16   1      	//putchar(h);
  17   1      	//putchar(l);
  18   1      	put_kbbuff(h);
  19   1      	put_kbbuff(l);
  20   1      }
  21          
  22          
  23          void delay(char d)
  24          {
  25   1      	char i,j; //, k;
  26   1      
  27   1      	for(i=0; i<d; i++)
  28   1      		for(j=0; j<40; j++)
  29   1      			;//for(k=0; k<176; k++);
  30   1      }
  31          
C51 COMPILER V6.12  GPR                                                                    03/03/2007 18:29:42 PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _print_hexbyte (BEGIN)
;---- Variable 'i' assigned to Register 'R6' ----
0000 AE07              MOV     R6,AR7
                                           ; SOURCE LINE # 4
                                           ; SOURCE LINE # 5
                                           ; SOURCE LINE # 8
0002 EE                MOV     A,R6
0003 54F0              ANL     A,#0F0H
0005 FF                MOV     R7,A
;---- Variable 'h' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 9
0006 C4                SWAP    A
0007 540F              ANL     A,#0FH
0009 FF                MOV     R7,A
                                           ; SOURCE LINE # 10
000A 2430              ADD     A,#030H
000C FF                MOV     R7,A
                                           ; SOURCE LINE # 11
000D D3                SETB    C
000E 9439              SUBB    A,#039H
0010 4004              JC      ?C0001
                                           ; SOURCE LINE # 12
0012 7407              MOV     A,#07H
0014 2F                ADD     A,R7
0015 FF                MOV     R7,A
0016         ?C0001:
                                           ; SOURCE LINE # 13
0016 EE                MOV     A,R6
0017 540F              ANL     A,#0FH
0019 2430              ADD     A,#030H
001B F500        R     MOV     l,A
                                           ; SOURCE LINE # 14
001D D3                SETB    C
001E 9439              SUBB    A,#039H
0020 4006              JC      ?C0002
                                           ; SOURCE LINE # 15
0022 7407              MOV     A,#07H
0024 2500        R     ADD     A,l
0026 F500        R     MOV     l,A
0028         ?C0002:
                                           ; SOURCE LINE # 18
0028 1100        E     ACALL   _put_kbbuff
                                           ; SOURCE LINE # 19
002A AF00        R     MOV     R7,l
002C 0100        E     AJMP    _put_kbbuff
             ; FUNCTION _print_hexbyte (END)

             ; FUNCTION _delay (BEGIN)
;---- Variable 'd' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 23
                                           ; SOURCE LINE # 24
                                           ; SOURCE LINE # 27
;---- Variable 'i' assigned to Register 'R6' ----
0000 E4                CLR     A
0001 FE                MOV     R6,A
0002         ?C0004:
0002 C3                CLR     C
0003 EF                MOV     A,R7
0004 6480              XRL     A,#080H
C51 COMPILER V6.12  GPR                                                                    03/03/2007 18:29:42 PAGE 3   

0006 F8                MOV     R0,A
0007 EE                MOV     A,R6
0008 6480              XRL     A,#080H
000A 98                SUBB    A,R0
000B 5009              JNC     ?C0010
                                           ; SOURCE LINE # 28
;---- Variable 'j' assigned to Register 'R5' ----
000D E4                CLR     A
000E FD                MOV     R5,A
000F         ?C0007:
000F 0D                INC     R5
0010 BD28FC            CJNE    R5,#028H,?C0007
0013         ?C0006:
0013 0E                INC     R6
0014 80EC              SJMP    ?C0004
                                           ; SOURCE LINE # 30
0016         ?C0010:
0016 22                RET     
             ; FUNCTION _delay (END)

C51 COMPILER V6.12  GPR                                                                    03/03/2007 18:29:42 PAGE 4   

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


_put_kbbuff. . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
_print_hexbyte . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  h. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  l. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
_delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  d. . . . . . . . . . . . . . . . . .  * REG *  DATA   CHAR     0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   CHAR     0006H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   CHAR     0005H  1


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