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

📄 lcd_demo.lst

📁 LPC2142 LCD12232的显示动画 keil环境
💻 LST
📖 第 1 页 / 共 5 页
字号:
 0000000C  FFF9      BL          OUTMD?T  ; T=0x0001  (2)
  241: } 
 0000000E  BC08      POP         {R3}
 00000010  4718      BX          R3
 00000012          ENDP ; 'PutCharL?T'


*** CODE SEGMENT '?PR?DrawBmp?T?Lcd_Demo':
  252: void DrawBmp(unsigned layer,uchar width,unsigned char const *bmp)
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C17      MOV         R7,R2 ; bmp
 00000004  ---- Variable 'bmp' assigned to Register 'R7' ----
 00000004  1C0E      MOV         R6,R1 ; width
 00000006  ---- Variable 'width' assigned to Register 'R6' ----
 00000006  1C05      MOV         R5,R0 ; layer
 00000008  ---- Variable 'layer' assigned to Register 'R5' ----
 00000008  B083      SUB         R13,#0xC
  253: {
 0000000A            ; SCOPE-START
  254: uchar x,address,i=0;     //address表示显存的物理地址
 0000000A  2100      MOV         R1,#0x0
 0000000C  1C0C      MOV         R4,R1 ; i
 0000000E  ---- Variable 'i' assigned to Register 'R4' ----
  256: uchar window=0;  //window表示左右两页
 0000000E  A802      ADD         R0,R13,#0x8
 00000010  7001      STRB        R1,[R0,#0x0] ; window
  260: for (x=width;x>1;x--)
 00000012  1C31      MOV         R1,R6 ; width
 00000014  A800      ADD         R0,R13,#0x0
 00000016  7001      STRB        R1,[R0,#0x0] ; x
 00000018  E0A1      B           L_27  ; T=0x0000015E
 0000001A          L_28:
  262: if (i>60) {window=1;address=i%61;}
 0000001A  1C20      MOV         R0,R4 ; i
 0000001C  0600      LSL         R0,R0,#0x18 ; i
 0000001E  0E00      LSR         R0,R0,#0x18
 00000020  283C      CMP         R0,#0x3C
 00000022  DD0E      BLE         L_30  ; T=0x00000042
 00000024  2101      MOV         R1,#0x1
 00000026  A802      ADD         R0,R13,#0x8
 00000028  7001      STRB        R1,[R0,#0x0] ; window
 0000002A  1C20      MOV         R0,R4 ; i
 0000002C  0600      LSL         R0,R0,#0x18 ; i
 0000002E  0E00      LSR         R0,R0,#0x18
 00000030  213D      MOV         R1,#0x3D
 00000032  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000034  FFE5      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000036  1C01      MOV         R1,R0
 00000038  0609      LSL         R1,R1,#0x18
ARM COMPILER V2.42,  Lcd_Demo                                                              05/01/06  14:35:51  PAGE 20  

 0000003A  0E09      LSR         R1,R1,#0x18
 0000003C  A801      ADD         R0,R13,#0x4
 0000003E  7001      STRB        R1,[R0,#0x0] ; address
 00000040  E002      B           L_31  ; T=0x00000048
 00000042          L_30:
  263: else address=i; 
 00000042  1C21      MOV         R1,R4 ; i
 00000044  A801      ADD         R0,R13,#0x4
 00000046  7001      STRB        R1,[R0,#0x0] ; address
 00000048          L_31:
  265: if(layer==0)    //显示一行八个字
 00000048  1C28      MOV         R0,R5 ; layer
 0000004A  2800      CMP         R0,#0x0 ; layer
 0000004C  D140      BNE         L_32  ; T=0x000000D0
  267:     SetPage(0,0);
 0000004E  2100      MOV         R1,#0x0
 00000050  1C08      MOV         R0,R1
 00000052  F7FF      BL          SetPage?T  ; T=0x0001  (1)
 00000054  FFD5      BL          SetPage?T  ; T=0x0001  (2)
  268:     SetAddress(address,address);
 00000056  A801      ADD         R0,R13,#0x4
 00000058  7801      LDRB        R1,[R0,#0x0] ; address
 0000005A  1C08      MOV         R0,R1
 0000005C  F7FF      BL          SetAddress?T  ; T=0x0001  (1)
 0000005E  FFD0      BL          SetAddress?T  ; T=0x0001  (2)
  269:     if(window==1)PutCharR(bmp[i]);
 00000060  A802      ADD         R0,R13,#0x8
 00000062  7800      LDRB        R0,[R0,#0x0] ; window
 00000064  2801      CMP         R0,#0x1
 00000066  D107      BNE         L_33  ; T=0x00000078
 00000068  1C20      MOV         R0,R4 ; i
 0000006A  0601      LSL         R1,R0,#0x18 ; i
 0000006C  0E09      LSR         R1,R1,#0x18
 0000006E  1C38      MOV         R0,R7 ; bmp
 00000070  5C40      LDRB        R0,[R0,R1]
 00000072  F7FF      BL          PutCharR?T  ; T=0x0001  (1)
 00000074  FFC5      BL          PutCharR?T  ; T=0x0001  (2)
 00000076  E006      B           L_34  ; T=0x00000086
 00000078          L_33:
  270:     else    PutCharL(bmp[i]);
 00000078  1C20      MOV         R0,R4 ; i
 0000007A  0601      LSL         R1,R0,#0x18 ; i
 0000007C  0E09      LSR         R1,R1,#0x18
 0000007E  1C38      MOV         R0,R7 ; bmp
 00000080  5C40      LDRB        R0,[R0,R1]
 00000082  F7FF      BL          PutCharL?T  ; T=0x0001  (1)
 00000084  FFBD      BL          PutCharL?T  ; T=0x0001  (2)
 00000086          L_34:
  271:     SetPage(1,1);
 00000086  2101      MOV         R1,#0x1
 00000088  1C08      MOV         R0,R1
 0000008A  F7FF      BL          SetPage?T  ; T=0x0001  (1)
 0000008C  FFB9      BL          SetPage?T  ; T=0x0001  (2)
  272:     SetAddress(address,address);
 0000008E  A801      ADD         R0,R13,#0x4
 00000090  7801      LDRB        R1,[R0,#0x0] ; address
 00000092  1C08      MOV         R0,R1
 00000094  F7FF      BL          SetAddress?T  ; T=0x0001  (1)
 00000096  FFB4      BL          SetAddress?T  ; T=0x0001  (2)
  273:     if(window==1)PutCharR(bmp[i+width]);
 00000098  A802      ADD         R0,R13,#0x8
 0000009A  7800      LDRB        R0,[R0,#0x0] ; window
 0000009C  2801      CMP         R0,#0x1
 0000009E  D10B      BNE         L_35  ; T=0x000000B8
 000000A0  1C30      MOV         R0,R6 ; width
 000000A2  0600      LSL         R0,R0,#0x18 ; width
ARM COMPILER V2.42,  Lcd_Demo                                                              05/01/06  14:35:51  PAGE 21  

 000000A4  0E00      LSR         R0,R0,#0x18
 000000A6  1C21      MOV         R1,R4 ; i
 000000A8  0609      LSL         R1,R1,#0x18 ; i
 000000AA  0E09      LSR         R1,R1,#0x18
 000000AC  1809      ADD         R1,R0
 000000AE  1C38      MOV         R0,R7 ; bmp
 000000B0  5C40      LDRB        R0,[R0,R1]
 000000B2  F7FF      BL          PutCharR?T  ; T=0x0001  (1)
 000000B4  FFA5      BL          PutCharR?T  ; T=0x0001  (2)
 000000B6  E04B      B           L_37  ; T=0x00000150
 000000B8          L_35:
  274:     else    PutCharL(bmp[i+width]);
 000000B8  1C30      MOV         R0,R6 ; width
 000000BA  0600      LSL         R0,R0,#0x18 ; width
 000000BC  0E00      LSR         R0,R0,#0x18
 000000BE  1C21      MOV         R1,R4 ; i
 000000C0  0609      LSL         R1,R1,#0x18 ; i
 000000C2  0E09      LSR         R1,R1,#0x18
 000000C4  1809      ADD         R1,R0
 000000C6  1C38      MOV         R0,R7 ; bmp
 000000C8  5C40      LDRB        R0,[R0,R1]
 000000CA  F7FF      BL          PutCharL?T  ; T=0x0001  (1)
 000000CC  FF99      BL          PutCharL?T  ; T=0x0001  (2)
  275:     }
 000000CE  E03F      B           L_37  ; T=0x00000150
 000000D0          L_32:
  278:     SetPage(2,2);
 000000D0  2102      MOV         R1,#0x2
 000000D2  1C08      MOV         R0,R1
 000000D4  F7FF      BL          SetPage?T  ; T=0x0001  (1)
 000000D6  FF94      BL          SetPage?T  ; T=0x0001  (2)
  279:     SetAddress(address,address);
 000000D8  A801      ADD         R0,R13,#0x4
 000000DA  7801      LDRB        R1,[R0,#0x0] ; address
 000000DC  1C08      MOV         R0,R1
 000000DE  F7FF      BL          SetAddress?T  ; T=0x0001  (1)
 000000E0  FF8F      BL          SetAddress?T  ; T=0x0001  (2)
  280:     if(window==1)PutCharR(bmp[i]);
 000000E2  A802      ADD         R0,R13,#0x8
 000000E4  7800      LDRB        R0,[R0,#0x0] ; window
 000000E6  2801      CMP         R0,#0x1
 000000E8  D107      BNE         L_38  ; T=0x000000FA
 000000EA  1C20      MOV         R0,R4 ; i
 000000EC  0601      LSL         R1,R0,#0x18 ; i
 000000EE  0E09      LSR         R1,R1,#0x18
 000000F0  1C38      MOV         R0,R7 ; bmp
 000000F2  5C40      LDRB        R0,[R0,R1]
 000000F4  F7FF      BL          PutCharR?T  ; T=0x0001  (1)
 000000F6  FF84      BL          PutCharR?T  ; T=0x0001  (2)
 000000F8  E006      B           L_39  ; T=0x00000108
 000000FA          L_38:
  281:     else    PutCharL(bmp[i]);
 000000FA  1C20      MOV         R0,R4 ; i
 000000FC  0601      LSL         R1,R0,#0x18 ; i
 000000FE  0E09      LSR         R1,R1,#0x18
 00000100  1C38      MOV         R0,R7 ; bmp
 00000102  5C40      LDRB        R0,[R0,R1]
 00000104  F7FF      BL          PutCharL?T  ; T=0x0001  (1)
 00000106  FF7C      BL          PutCharL?T  ; T=0x0001  (2)
 00000108          L_39:
  282:     SetPage(3,3);
 00000108  2103      MOV         R1,#0x3
 0000010A  1C08      MOV         R0,R1
 0000010C  F7FF      BL          SetPage?T  ; T=0x0001  (1)
 0000010E  FF78      BL          SetPage?T  ; T=0x0001  (2)
  283:     SetAddress(address,address);
ARM COMPILER V2.42,  Lcd_Demo                                                              05/01/06  14:35:51  PAGE 22  

 00000110  A801      ADD         R0,R13,#0x4
 00000112  7801      LDRB        R1,[R0,#0x0] ; address
 00000114  1C08      MOV         R0,R1
 00000116  F7FF      BL          SetAddress?T  ; T=0x0001  (1)
 00000118  FF73      BL          SetAddress?T  ; T=0x0001  (2)
  284:     if(window==1)PutCharR(bmp[i+width]);
 0000011A  A802      ADD         R0,R13,#0x8
 0000011C  7800      LDRB        R0,[R0,#0x0] ; window
 0000011E  2801      CMP         R0,#0x1
 00000120  D10B      BNE         L_40  ; T=0x0000013A
 00000122  1C30      MOV         R0,R6 ; width
 00000124  0600      LSL         R0,R0,#0x18 ; width
 00000126  0E00      LSR         R0,R0,#0x18
 00000128  1C21      MOV         R1,R4 ; i
 0000012A  0609      LSL         R1,R1,#0x18 ; i
 0000012C  0E09      LSR         R1,R1,#0x18
 0000012E  1809      ADD         R1,R0
 00000130  1C38      MOV         R0,R7 ; bmp
 00000132  5C40      LDRB        R0,[R0,R1]
 00000134  F7FF      BL          PutCharR?T  ; T=0x0001  (1)
 00000136  FF64      BL          PutCharR?T  ; T=0x0001  (2)
 00000138  E00A      B           L_37  ; T=0x00000150
 0000013A          L_40:
  285:     else    PutCharL(bmp[i+width]);
 0000013A  1C30      MOV         R0,R6 ; width
 0000013C  0600      LSL         R0,R0,#0x18 ; width
 0000013E  0E00      LSR         R0,R0,#0x18
 00000140  1C21      MOV         R1,R4 ; i
 00000142  0609      LSL         R1,R1,#0x18 ; i
 00000144  0E09      LSR         R1,R1,#0x18
 00000146  1809      ADD         R1,R0
 00000148  1C38      MOV         R0,R7 ; bmp
 0000014A  5C40      LDRB        R0,[R0,R1]
 0000014C  F7FF      BL          PutCharL?T  ; T=0x0001  (1)
 0000014E  FF58      BL          PutCharL?T  ; T=0x0001  (2)
  286:     }
 00000150          L_37:
  287:     i++;
 00000150  3401      ADD         R4,#0x1
 00000152  0624      LSL         R4,R4,#0x18
 00000154  0E24      LSR         R4,R4,#0x18
  289: }
 00000156  A800      ADD         R0,R13,#0x0
 00000158  7801      LDRB        R1,[R0,#0x0] ; x
 0000015A  3901      SUB         R1,#0x1
 0000015C  7001      STRB        R1,[R0,#0x0] ; x
 0000015E          L_27:
 0000015E  A800      ADD         R0,R13,#0x0
 00000160  7800      LDRB        R0,[R0,#0x0] ; x
 00000162  2801      CMP         R0,#0x1
 00000164  DD00      BGT         $+4
 00000166  E758      B           L_28  ; T=0x0000001A
 0000016A            ; SCOPE-END
  290: }
 0000016A  B003      ADD         R13,#0xC
 0000016C  BCF0      POP         {R4-R7}
 0000016E  BC08      POP         {R3}
 00000170  4718      BX          R3
 00000172          ENDP ; 'DrawBmp?T'


*** CODE SEGMENT '?PR?clrscr?T?Lcd_Demo':
  300: void clrscr(void)
 00000000  B530      PUSH        {R4-R5,LR}
  301: {
 00000002            ; SCOPE-START
  304: for (page=0;page<4;page++)
 00000002  2400      MOV         R4,#0x0
ARM COMPILER V2.42,  Lcd_Demo                                                              05/01/06  14:35:51  PAGE 23  

 00000004  ---- Variable 'page' assigned to Register 'R4' ----
 00000004  E01E      B           L_44  ; T=0x00000044
 00000006          L_45:
  306: SetPage(page,page);
 00000006  1C20      MOV         R0,R4 ; page
 00000008  0600      LSL         R0,R0,#0x18 ; page
 0000000A  0E00      LSR         R0,R0,#0x18
 0000000C  1C21      MOV         R1,R4 ; page
 0000000E  0609      LSL         R1,R1,#0x18 ; page
 00000010  0E09      LSR         R1,R1,#0x18
 00000012  F7FF      BL          SetPage?T  ; T=0x0001  (1)
 00000014  FFF5      BL          SetPage?T  ; T=0x0001  (2)
  307: SetAddress(0,0);
 00000016  2100      MOV         R1,#0x0
 00000018  1C08      MOV         R0,R1
 0000001A  F7FF      BL          SetAddress?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          SetAddress?T  ; T=0x0001  (2)
  308: for (i=0;i<61;i++){PutCharR(0);PutCharL(0);}
 0000001E  2500      MOV         R5,#0x0
 00000020  ---- Variable 'i' assigned to Register 'R5' ----
 00000020  E008      B           L_49  ; T=0x00000034
 00000022          L_50:
 00000022  2000      MOV         R0,#0x0
 00000024  F7FF      BL          PutCharR?T  ; T=0x0001  (1)
 00000026  FFEC      BL          PutCharR?T  ; T=0x0001  (2)
 00000028  2000      MOV         R0,#0x0
 0000002A  F7FF      BL          PutCharL?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          PutCharL?T  ; T=0x0001  (2)
 0000002E  3501      ADD         R5,#0x1
 00000030  062D      LSL         R5,R5,#0x18
 00000032  0E2D      LSR         R5,R5,#0x18
 00000034          L_49:
 00000034  1C28      MOV         R0,R5 ; i
 00000036  0600      LSL         R0,R0,#0x18 ; i
 00000038  0E00      LSR         R0,R0,#0x18
 0000003A  283D      CMP         R0,#0x3D
 0000003C  DBF1      BLT         L_50  ; T=0x00000022
  309: }
 0000003E  3401      ADD         R4,#0x1
 00000040  0624      LSL         R4,R4,#0x18
 00000042  0E24      LSR         R4,R4,#0x18
 00000044          L_44:
 00000044  1C20      MOV         R0,R4 ; page
 00000046  0600      LSL         R0,R0,#0x18 ; page
 00000048  0E00      LSR         R0,R0,#0x18
 0000004A  2804      CMP         R0,#0x4
 0000004C  DBDB      BLT         L_45  ; T=0x00000006
 0000004E            ; SCOPE-END
  310: } 
 0000004E  BC30      POP         {R4-R5}
 00000050  BC08      POP         {R3}
 00000052  4718      BX          R3
 00000054          ENDP ; 'clrscr?T'


*** C

⌨️ 快捷键说明

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