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

📄 disp_routines.lst

📁 lpc2138读写SD卡的fat文件系统
💻 LST
字号:
ARM COMPILER V2.00d,  disp_routines                                                        23/10/05  18:16:19  PAGE 1   


ARM COMPILER V2.00d, COMPILATION OF MODULE disp_routines
OBJECT MODULE PLACED IN .\Flash\disp_routines.obj
COMPILER INVOKED BY: C:\KEIL\ARM\BIN\CA.EXE disp_routines.c THUMB OPTIMIZE(7,SPEED) BROWSE DEBUG PRINT(.\FLASH\DISP_ROUT
                    -INES.LST) TABS(4) OBJECT(.\Flash\disp_routines.obj) 

stmt  level    source

    1          /******************************************************************************/
    2          /*  This file is part of the kp development                                   */
    3          /*  Copyright kp                                                              */
    4          /******************************************************************************/
    5          /*                                                                            */
    6          /*  Display routines                                       */
    7          /*                                                                            */
    8          /******************************************************************************/
    9          
   10          #include <LPC213x.H>            // LPC21xx definitions
   11          #include <bsp.h>                // include board support package
   12          
   13          extern int putchar (int ch);    // Write character to Serial Port    
   14          
   15          #define DIM 0x04
   16          #define CLR 0x0D
   17          #define SC  0x10
   18          
   19          void disp_lum(unsigned char x) {
   20   1        unsigned char x_data;
   21   1        switch(x) {
   22   2          case 0 : x_data = 0x00; break;
   23   2          case 1 : x_data = 0x20; break;
   24   2          case 2 : x_data = 0x40; break;
   25   2          case 3 : x_data = 0x60; break;
   26   2          case 4 : x_data = 0x80; break;
   27   2          case 5 : x_data = 0xFF; break;
   28   2          default: x_data = 0x40;
   29   2        }
   30   1        putchar(DIM);
   31   1        putchar(x_data);
   32   1      }
   33          
   34          void disp_clr(void) {
   35   1        putchar(CLR);
   36   1      }
   37          
   38          void disp_set_cursor(unsigned char r, unsigned char c) {
   39   1        // r is for row number (0 & 1)
   40   1        // c is for column number (0 to 23)
   41   1        unsigned char sc_data = 0;
   42   1        if (r==0) sc_data=c;
   43   1        else sc_data=c+0x14;
   44   1        putchar(SC);
   45   1        putchar(sc_data);
   46   1      }
ARM COMPILER V2.00d,  disp_routines                                                        23/10/05  18:16:19  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (putchar?T)



*** PUBLICS:
 PUBLIC         disp_lum?T
 PUBLIC         disp_clr?T
 PUBLIC         disp_set_cursor?T



*** CODE SEGMENT '?PR?disp_lum?T?disp_routines':
   19: void disp_lum(unsigned char x) {
 00000000  B510      PUSH        {R4,LR}
 00000002  ---- Variable 'x' assigned to Register 'R0' ----
 00000002  ---- Variable 'x_data' assigned to Register 'R4' ----
 00000002            ; SCOPE-START
   21:   switch(x) {
 00000002  1C01      MOV         R1,R0 ; x
 00000004  3901      SUB         R1,#0x1
 00000006  D00B      BEQ         L_4  ; T=0x00000020
 00000008  3901      SUB         R1,#0x1
 0000000A  D00B      BEQ         L_5  ; T=0x00000024
 0000000C  3901      SUB         R1,#0x1
 0000000E  D00B      BEQ         L_6  ; T=0x00000028
 00000010  3901      SUB         R1,#0x1
 00000012  D00B      BEQ         L_7  ; T=0x0000002C
 00000014  3901      SUB         R1,#0x1
 00000016  D00B      BEQ         L_8  ; T=0x00000030
 00000018  3105      ADD         R1,#0x5
 0000001A  D10B      BNE         L_3  ; T=0x00000034
   22:     case 0 : x_data = 0x00; break;
 0000001C          L_2:
 0000001C  2400      MOV         R4,#0x0
 0000001E  E00A      B           L_1  ; T=0x00000036
   23:     case 1 : x_data = 0x20; break;
 00000020          L_4:
 00000020  2420      MOV         R4,#0x20
 00000022  E008      B           L_1  ; T=0x00000036
   24:     case 2 : x_data = 0x40; break;
 00000024          L_5:
 00000024  2440      MOV         R4,#0x40
 00000026  E006      B           L_1  ; T=0x00000036
   25:     case 3 : x_data = 0x60; break;
 00000028          L_6:
 00000028  2460      MOV         R4,#0x60
 0000002A  E004      B           L_1  ; T=0x00000036
   26:     case 4 : x_data = 0x80; break;
 0000002C          L_7:
 0000002C  2480      MOV         R4,#0x80
 0000002E  E002      B           L_1  ; T=0x00000036
   27:     case 5 : x_data = 0xFF; break;
 00000030          L_8:
 00000030  24FF      MOV         R4,#0xFF
 00000032  E000      B           L_1  ; T=0x00000036
   28:     default: x_data = 0x40;
 00000034          L_3:
 00000034  2440      MOV         R4,#0x40
   29:   }
 00000036          L_1:
   30:   putchar(DIM);
 00000036  2004      MOV         R0,#0x4
 00000038  F7FF      BL          putchar?T  ; T=0x0001  (1)
 0000003A  FFE2      BL          putchar?T  ; T=0x0001  (2)
   31:   putchar(x_data);
 0000003E  0620      LSL         R0,R4,#0x18 ; x_data
ARM COMPILER V2.00d,  disp_routines                                                        23/10/05  18:16:19  PAGE 3   

 00000040  0E00      LSR         R0,R0,#0x18 ; x_data
 00000042  F7FF      BL          putchar?T  ; T=0x0001  (1)
 00000044  FFDD      BL          putchar?T  ; T=0x0001  (2)
 00000048            ; SCOPE-END
   32: }
 00000048  BC10      POP         {R4}
 0000004A  BC08      POP         {R3}
 0000004C  4718      BX          R3
 0000004E          ENDP ; 'disp_lum?T'


*** CODE SEGMENT '?PR?disp_clr?T?disp_routines':
   34: void disp_clr(void) {
 00000000  B500      PUSH        {LR}
   35:   putchar(CLR);
 00000002  200D      MOV         R0,#0xD
 00000004  F7FF      BL          putchar?T  ; T=0x0001  (1)
 00000006  FFFC      BL          putchar?T  ; T=0x0001  (2)
   36: }
 0000000A  BC08      POP         {R3}
 0000000C  4718      BX          R3
 0000000E          ENDP ; 'disp_clr?T'


*** CODE SEGMENT '?PR?disp_set_cursor?T?disp_routines':
   38: void disp_set_cursor(unsigned char r, unsigned char c) {
 00000000  B510      PUSH        {R4,LR}
 00000002  ---- Variable 'c' assigned to Register 'R1' ----
 00000002  ---- Variable 'r' assigned to Register 'R0' ----
 00000002  ---- Variable 'sc_data' assigned to Register 'R4' ----
 00000002            ; SCOPE-START
   42:   if (r==0) sc_data=c;
 00000002  0600      LSL         R0,R0,#0x18 ; r
 00000004  0E00      LSR         R0,R0,#0x18 ; r
 00000006  2800      CMP         R0,#0x0 ; r
 00000008  D101      BNE         L_9  ; T=0x0000000E
 0000000A  1C0C      MOV         R4,R1 ; sc_data
 0000000C  E002      B           L_10  ; T=0x00000014
 0000000E          L_9:
   43:   else sc_data=c+0x14;
 0000000E  060C      LSL         R4,R1,#0x18 ; c
 00000010  0E24      LSR         R4,R4,#0x18 ; c
 00000012  3414      ADD         R4,#0x14
 00000014          L_10:
   44:   putchar(SC);
 00000014  2010      MOV         R0,#0x10
 00000016  F7FF      BL          putchar?T  ; T=0x0001  (1)
 00000018  FFF3      BL          putchar?T  ; T=0x0001  (2)
   45:   putchar(sc_data);
 0000001C  0620      LSL         R0,R4,#0x18 ; sc_data
 0000001E  0E00      LSR         R0,R0,#0x18 ; sc_data
 00000020  F7FF      BL          putchar?T  ; T=0x0001  (1)
 00000022  FFEE      BL          putchar?T  ; T=0x0001  (2)
 00000026            ; SCOPE-END
 00000026  BC10      POP         {R4}
 00000028  BC08      POP         {R3}
 0000002A  4718      BX          R3
 0000002C          ENDP ; 'disp_set_cursor?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =    ------
End of Module Information.


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

⌨️ 快捷键说明

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