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

📄 main.lst

📁 学习用
💻 LST
📖 第 1 页 / 共 2 页
字号:
 00000002  1C11      MOV         R1,R2 ; dat
 00000004  4800      LDR         R0,=0xE000C000
 00000006  7001      STRB        R1,[R0,#0x0]
   65:     while ((U0LSR & 0x40) == 0);        // 等待数据发送完毕
 00000008          L_11:
 00000008  4800      LDR         R0,=0xE000C014
 0000000A  7800      LDRB        R0,[R0,#0x0]
 0000000C  2140      MOV         R1,#0x40
 0000000E  4208      TST         R0,R1
 00000010  D0FA      BEQ         L_11  ; T=0x00000008
   66: }
 00000012  4770      BX          R14
 00000014          ENDP ; 'UART0_SendByte?T'


*** CODE SEGMENT '?PR?KeyInit?T?main':
   71:   IO0DIR &=~((1 << KEY1)        // 设置KEY1为输入   
 00000000  4800      LDR         R2,=0x3F0000
 00000002  4800      LDR         R0,=0xE0028008
 00000004  6801      LDR         R1,[R0,#0x0]
 00000006  4391      BIC         R1,R2
 00000008  6001      STR         R1,[R0,#0x0]
   77: }
 0000000A  4770      BX          R14
 0000000C          ENDP ; 'KeyInit?T'


*** CODE SEGMENT '?PR?main?main':
   87: int main (void)
 00000000  B500      PUSH        {LR}
 00000002  ---- Variable 'i' assigned to Register 'R4' ----
   88: {
 00000002            ; SCOPE-START
   90:   PINSEL0 = 0x00000000;     // 设置管脚连接GPIO
 00000002  2100      MOV         R1,#0x0
 00000004  4800      LDR         R0,=0xE002C000
 00000006  6001      STR         R1,[R0,#0x0]
   91:   PINSEL1 = 0x00000000;     // 设置管脚连接GPIO
 00000008  4800      LDR         R0,=0xE002C004
 0000000A  6001      STR         R1,[R0,#0x0]
   92:   IO0DIR  = 0x00000000;     // 设置P0口为输入
 0000000C  4800      LDR         R0,=0xE0028008
 0000000E  6001      STR         R1,[R0,#0x0]
   93:   IO1DIR  = 0x00000000;     // 设置P1口为输入
 00000010  4800      LDR         R0,=0xE0028018
 00000012  6001      STR         R1,[R0,#0x0]
   94:   UART0_Init();
 00000014  F7FF      BL          UART0_Init?T  ; T=0x0001  (1)
 00000016  FFF4      BL          UART0_Init?T  ; T=0x0001  (2)
   95:   KeyInit();
 00000018  F7FF      BL          KeyInit?T  ; T=0x0001  (1)
 0000001A  FFF2      BL          KeyInit?T  ; T=0x0001  (2)
   96:   while (1)
 0000001C          L_17:
   98:     if (!(IO0PIN & (1 << KEY1))) {//有KEY1键压下(P0.16=0 低电平)
 0000001C  4800      LDR         R0,=0xE0028000
 0000001E  6800      LDR         R0,[R0,#0x0]
 00000020  4800      LDR         R1,=0x10000
 00000022  4208      TST         R0,R1
 00000024  D10C      BNE         L_19  ; T=0x00000040
   99:       for(i = 0; i < 256; i ++) {
 00000026  2400      MOV         R4,#0x0
 00000028          L_23:
ARM COMPILER V2.50a,  main                                                                 04/02/06  11:55:52  PAGE 6   

  100:         UART0_SendByte(0x55);//发送256个0x55
 00000028  2055      MOV         R0,#0x55
 0000002A  F7FF      BL          UART0_SendByte?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          UART0_SendByte?T  ; T=0x0001  (2)
  101:         DelayNS(1);
 0000002E  2001      MOV         R0,#0x1
 00000030  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 00000032  FFE6      BL          DelayNS?T  ; T=0x0001  (2)
  102:       }
 00000034  3401      ADD         R4,#0x1
 00000036  1C20      MOV         R0,R4 ; i
 00000038  4940      LDR         R1,=0x100
 0000003A  4288      CMP         R0,R1 ; i
 0000003C  D3F4      BCC         L_23  ; T=0x00000028
  103:     }
 0000003E  E7ED      B           L_17  ; T=0x0000001C
 00000040          L_19:
  104:     else if (!(IO0PIN & (1 << KEY2))) {//有KEY2键压下(P0.17=0 低电平)
 00000040  4800      LDR         R0,=0xE0028000
 00000042  6800      LDR         R0,[R0,#0x0]
 00000044  4800      LDR         R1,=0x20000
 00000046  4208      TST         R0,R1
 00000048  D10C      BNE         L_26  ; T=0x00000064
  105:       for(i = 0; i < 256; i ++) {
 0000004A  2400      MOV         R4,#0x0
 0000004C          L_30:
  106:         UART0_SendByte(0xaa);//发送256个0xaa
 0000004C  20AA      MOV         R0,#0xAA
 0000004E  F7FF      BL          UART0_SendByte?T  ; T=0x0001  (1)
 00000050  FFD7      BL          UART0_SendByte?T  ; T=0x0001  (2)
  107:         DelayNS(1);
 00000052  2001      MOV         R0,#0x1
 00000054  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 00000056  FFD4      BL          DelayNS?T  ; T=0x0001  (2)
  108:       }
 00000058  3401      ADD         R4,#0x1
 0000005A  1C20      MOV         R0,R4 ; i
 0000005C  4940      LDR         R1,=0x100
 0000005E  4288      CMP         R0,R1 ; i
 00000060  D3F4      BCC         L_30  ; T=0x0000004C
  109:     }
 00000062  E7DB      B           L_17  ; T=0x0000001C
 00000064          L_26:
  110:     else if (!(IO0PIN & (1 << KEY3))) {//有KEY3键压下(P0.18=0 低电平)
 00000064  4800      LDR         R0,=0xE0028000
 00000066  6800      LDR         R0,[R0,#0x0]
 00000068  4800      LDR         R1,=0x40000
 0000006A  4208      TST         R0,R1
 0000006C  D10C      BNE         L_33  ; T=0x00000088
  111:       for(i = 0; i < 256; i ++) {
 0000006E  2400      MOV         R4,#0x0
 00000070          L_37:
  112:         UART0_SendByte(0x00);//发送256个0x00
 00000070  2000      MOV         R0,#0x0
 00000072  F7FF      BL          UART0_SendByte?T  ; T=0x0001  (1)
 00000074  FFC5      BL          UART0_SendByte?T  ; T=0x0001  (2)
  113:         DelayNS(1);
 00000076  2001      MOV         R0,#0x1
 00000078  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 0000007A  FFC2      BL          DelayNS?T  ; T=0x0001  (2)
  114:       }
 0000007C  3401      ADD         R4,#0x1
 0000007E  1C20      MOV         R0,R4 ; i
 00000080  4940      LDR         R1,=0x100
 00000082  4288      CMP         R0,R1 ; i
 00000084  D3F4      BCC         L_37  ; T=0x00000070
ARM COMPILER V2.50a,  main                                                                 04/02/06  11:55:52  PAGE 7   

  115:     }
 00000086  E7C9      B           L_17  ; T=0x0000001C
 00000088          L_33:
  116:     else if (!(IO0PIN & (1 << KEY4))) {//有KEY4键压下(P0.19=0 低电平)
 00000088  4800      LDR         R0,=0xE0028000
 0000008A  6800      LDR         R0,[R0,#0x0]
 0000008C  4800      LDR         R1,=0x80000
 0000008E  4208      TST         R0,R1
 00000090  D10C      BNE         L_40  ; T=0x000000AC
  117:       for(i = 0; i < 256; i ++) {
 00000092  2400      MOV         R4,#0x0
 00000094          L_44:
  118:         UART0_SendByte(0x11);//发送256个0x11
 00000094  2011      MOV         R0,#0x11
 00000096  F7FF      BL          UART0_SendByte?T  ; T=0x0001  (1)
 00000098  FFB3      BL          UART0_SendByte?T  ; T=0x0001  (2)
  119:         DelayNS(1);
 0000009A  2001      MOV         R0,#0x1
 0000009C  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 0000009E  FFB0      BL          DelayNS?T  ; T=0x0001  (2)
  120:       }
 000000A0  3401      ADD         R4,#0x1
 000000A2  1C20      MOV         R0,R4 ; i
 000000A4  4940      LDR         R1,=0x100
 000000A6  4288      CMP         R0,R1 ; i
 000000A8  D3F4      BCC         L_44  ; T=0x00000094
  121:     }
 000000AA  E7B7      B           L_17  ; T=0x0000001C
 000000AC          L_40:
  122:     else if (!(IO0PIN & (1 << KEY5))) {//有KEY5键压下(P0.20=0 低电平)
 000000AC  4800      LDR         R0,=0xE0028000
 000000AE  6800      LDR         R0,[R0,#0x0]
 000000B0  4800      LDR         R1,=0x100000
 000000B2  4208      TST         R0,R1
 000000B4  D10C      BNE         L_47  ; T=0x000000D0
  123:       for(i = 0; i < 256; i ++) {
 000000B6  2400      MOV         R4,#0x0
 000000B8          L_51:
  124:         UART0_SendByte(0x13);//发送256个0x13
 000000B8  2013      MOV         R0,#0x13
 000000BA  F7FF      BL          UART0_SendByte?T  ; T=0x0001  (1)
 000000BC  FFA1      BL          UART0_SendByte?T  ; T=0x0001  (2)
  125:         DelayNS(1);
 000000BE  2001      MOV         R0,#0x1
 000000C0  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 000000C2  FF9E      BL          DelayNS?T  ; T=0x0001  (2)
  126:       }
 000000C4  3401      ADD         R4,#0x1
 000000C6  1C20      MOV         R0,R4 ; i
 000000C8  4940      LDR         R1,=0x100
 000000CA  4288      CMP         R0,R1 ; i
 000000CC  D3F4      BCC         L_51  ; T=0x000000B8
  127:     }
 000000CE  E7A5      B           L_17  ; T=0x0000001C
 000000D0          L_47:
  128:     else if (!(IO0PIN & (1 << KEY6))) {//有KEY6键压下(P0.21=0 低电平)
 000000D0  4800      LDR         R0,=0xE0028000
 000000D2  6800      LDR         R0,[R0,#0x0]
 000000D4  4800      LDR         R1,=0x200000
 000000D6  4208      TST         R0,R1
 000000D8  D1A0      BNE         L_17  ; T=0x0000001C
  129:       for(i = 0; i < 256; i ++) {
 000000DA  2400      MOV         R4,#0x0
 000000DC          L_58:
  130:         UART0_SendByte(i);//发送256个数据0x00~0xff
 000000DC  1C20      MOV         R0,R4 ; i
ARM COMPILER V2.50a,  main                                                                 04/02/06  11:55:52  PAGE 8   

 000000DE  F7FF      BL          UART0_SendByte?T  ; T=0x0001  (1)
 000000E0  FF8F      BL          UART0_SendByte?T  ; T=0x0001  (2)
  131:         DelayNS(1);
 000000E2  2001      MOV         R0,#0x1
 000000E4  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 000000E6  FF8C      BL          DelayNS?T  ; T=0x0001  (2)
  132:       }
 000000E8  3401      ADD         R4,#0x1
 000000EA  1C20      MOV         R0,R4 ; i
 000000EC  4940      LDR         R1,=0x100
 000000EE  4288      CMP         R0,R1 ; i
 000000F0  D3F4      BCC         L_58  ; T=0x000000DC
  134:   }            
 000000F2  E793      B           L_17  ; T=0x0000001C
  135:   return 0;
 000000F4            ; SCOPE-END
  136: }
 000000F4  BC08      POP         {R3}
 000000F6  4718      BX          R3
 000000F8          ENDP ; 'main'



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 + -