📄 main.lst
字号:
0000000A 4800 LDR R1,=0xE002C000
0000000C 600A STR R2,[R1,#0x0]
48: IO0DIR = BEEP; // 设置BEEP控制口为输出
0000000E 2280 MOV R2,#0x80
00000010 4800 LDR R1,=0xE0028008
00000012 600A STR R2,[R1,#0x0]
49: PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO
00000014 4800 LDR R1,=0xE002C014
00000016 680A LDR R2,[R1,#0x0]
00000018 2108 MOV R1,#0x8
0000001A 438A BIC R2,R1
0000001C 4800 LDR R1,=0xE002C014
0000001E 600A STR R2,[R1,#0x0]
50: IO1DIR |= LED1; // 设置LED1控制口为输出
00000020 4800 LDR R1,=LED1 ; LED1
00000022 680B LDR R3,[R1,#0x0] ; LED1
00000024 4800 LDR R1,=0xE0028018
00000026 680A LDR R2,[R1,#0x0]
00000028 431A ORR R2,R3
0000002A 600A STR R2,[R1,#0x0]
ARM COMPILER V2.53, Main 03/03/09 22:31:59 PAGE 6
55: for(i=0;i<3;i++)
0000002C 1C05 MOV R5,R0 ; i
0000002E L_14:
57: IO0SET = BEEP; // BEEP停止蜂鸣
0000002E 2180 MOV R1,#0x80
00000030 4800 LDR R0,=0xE0028004
00000032 6001 STR R1,[R0,#0x0]
58: IO1CLR = LED1; // LED1点亮
00000034 4800 LDR R0,=LED1 ; LED1
00000036 6801 LDR R1,[R0,#0x0] ; LED1
00000038 4800 LDR R0,=0xE002801C
0000003A 6001 STR R1,[R0,#0x0]
59: DelayNS(30);
0000003C 201E MOV R0,#0x1E
0000003E F7FF BL DelayNS?T ; T=0x0001 (1)
00000040 FFDF BL DelayNS?T ; T=0x0001 (2)
60: IO0CLR = BEEP; // BEEP 蜂鸣
00000042 2180 MOV R1,#0x80
00000044 4800 LDR R0,=0xE002800C
00000046 6001 STR R1,[R0,#0x0]
61: IO1SET = LED1; // LED1熄灭
00000048 4800 LDR R0,=LED1 ; LED1
0000004A 6801 LDR R1,[R0,#0x0] ; LED1
0000004C 4800 LDR R0,=0xE0028014
0000004E 6001 STR R1,[R0,#0x0]
62: DelayNS(15);
00000050 200F MOV R0,#0xF
00000052 F7FF BL DelayNS?T ; T=0x0001 (1)
00000054 FFD5 BL DelayNS?T ; T=0x0001 (2)
63: }
00000056 3501 ADD R5,#0x1
00000058 1C28 MOV R0,R5 ; i
0000005A 2803 CMP R0,#0x3 ; i
0000005C D3E7 BCC L_14 ; T=0x0000002E
64: IO0SET = BEEP; // BEEP停止蜂鸣
0000005E 2180 MOV R1,#0x80
00000060 4800 LDR R0,=0xE0028004
00000062 6001 STR R1,[R0,#0x0]
67: IO1DIR = LEDS8; // 设置LED1控制口为输出
00000064 4800 LDR R0,=LEDS8 ; LEDS8
00000066 6801 LDR R1,[R0,#0x0] ; LEDS8
00000068 4800 LDR R0,=0xE0028018
0000006A 6001 STR R1,[R0,#0x0]
68: for (j=0; j<2; j++)
0000006C 2400 MOV R4,#0x0
70: for (i=0; i<8; i++)
0000006E L_25:
0000006E 2500 MOV R5,#0x0
00000070 L_24:
72: IO1SET = ~(LEDS8 & (7 << (18+i)));
00000070 1C29 MOV R1,R5 ; i
00000072 3112 ADD R1,#0x12
00000074 2007 MOV R0,#0x7
00000076 4088 LSL R0,R1
00000078 4800 LDR R1,=LEDS8 ; LEDS8
0000007A 6809 LDR R1,[R1,#0x0] ; LEDS8
0000007C 4001 AND R1,R0
0000007E 43C9 MVN R1,R1
00000080 4800 LDR R0,=0xE0028014
00000082 6001 STR R1,[R0,#0x0]
73: DelayNS(10);
00000084 200A MOV R0,#0xA
00000086 F7FF BL DelayNS?T ; T=0x0001 (1)
00000088 FFBB BL DelayNS?T ; T=0x0001 (2)
74: IO1CLR = LEDS8 & (7 << (18+i));
0000008A 1C29 MOV R1,R5 ; i
ARM COMPILER V2.53, Main 03/03/09 22:31:59 PAGE 7
0000008C 3112 ADD R1,#0x12
0000008E 2007 MOV R0,#0x7
00000090 4088 LSL R0,R1
00000092 4800 LDR R1,=LEDS8 ; LEDS8
00000094 6809 LDR R1,[R1,#0x0] ; LEDS8
00000096 4001 AND R1,R0
00000098 4800 LDR R0,=0xE002801C
0000009A 6001 STR R1,[R0,#0x0]
75: DelayNS(10);
0000009C 200A MOV R0,#0xA
0000009E F7FF BL DelayNS?T ; T=0x0001 (1)
000000A0 FFAF BL DelayNS?T ; T=0x0001 (2)
76: }
000000A2 3501 ADD R5,#0x1
000000A4 1C28 MOV R0,R5 ; i
000000A6 2808 CMP R0,#0x8 ; i
000000A8 D3E2 BCC L_24 ; T=0x00000070
78: }
000000AA 3401 ADD R4,#0x1
000000AC 1C20 MOV R0,R4 ; j
000000AE 2802 CMP R0,#0x2 ; j
000000B0 D3DD BCC L_25 ; T=0x0000006E
81: for (j=0; j<2; j++)
000000B2 2400 MOV R4,#0x0
83: for (i=0; i<42; i++)
000000B4 L_35:
000000B4 2500 MOV R5,#0x0
000000B6 L_34:
85: IO1SET = ~((LED_TBL[i]) << 18);
000000B6 1C29 MOV R1,R5 ; i
000000B8 0089 LSL R1,R1,#0x2 ; i
000000BA 4800 LDR R0,=LED_TBL ; LED_TBL
000000BC 5841 LDR R1,[R0,R1]
000000BE 0489 LSL R1,R1,#0x12
000000C0 43C9 MVN R1,R1
000000C2 4800 LDR R0,=0xE0028014
000000C4 6001 STR R1,[R0,#0x0]
86: DelayNS(10);
000000C6 200A MOV R0,#0xA
000000C8 F7FF BL DelayNS?T ; T=0x0001 (1)
000000CA FF9A BL DelayNS?T ; T=0x0001 (2)
87: IO1CLR = ((LED_TBL[i]) << 18);
000000CC 1C29 MOV R1,R5 ; i
000000CE 0089 LSL R1,R1,#0x2 ; i
000000D0 4800 LDR R0,=LED_TBL ; LED_TBL
000000D2 5841 LDR R1,[R0,R1]
000000D4 0489 LSL R1,R1,#0x12
000000D6 4800 LDR R0,=0xE002801C
000000D8 6001 STR R1,[R0,#0x0]
88: DelayNS(10);
000000DA 200A MOV R0,#0xA
000000DC F7FF BL DelayNS?T ; T=0x0001 (1)
000000DE FF90 BL DelayNS?T ; T=0x0001 (2)
89: }
000000E0 3501 ADD R5,#0x1
000000E2 1C28 MOV R0,R5 ; i
000000E4 282A CMP R0,#0x2A ; i
000000E6 D3E6 BCC L_34 ; T=0x000000B6
90: }
000000E8 3401 ADD R4,#0x1
000000EA 1C20 MOV R0,R4 ; j
000000EC 2802 CMP R0,#0x2 ; j
000000EE D3E1 BCC L_35 ; T=0x000000B4
93: for (j=0; j<4; j++)
000000F0 2400 MOV R4,#0x0
000000F2 L_39:
ARM COMPILER V2.53, Main 03/03/09 22:31:59 PAGE 8
95: if ((IO1SET&LED1)==0)
000000F2 4800 LDR R0,=LED1 ; LED1
000000F4 6801 LDR R1,[R0,#0x0] ; LED1
000000F6 4800 LDR R0,=0xE0028014
000000F8 6800 LDR R0,[R0,#0x0]
000000FA 4008 AND R0,R1
000000FC 2800 CMP R0,#0x0
000000FE D102 BNE L_41 ; T=0x00000106
96: IO1SET=LED1;
00000100 4800 LDR R0,=0xE0028014
00000102 6001 STR R1,[R0,#0x0]
00000104 E001 B L_42 ; T=0x0000010A
00000106 L_41:
98: IO1CLR=LED1;
00000106 4800 LDR R0,=0xE002801C
00000108 6001 STR R1,[R0,#0x0]
0000010A L_42:
99: DelayNS(40);
0000010A 2028 MOV R0,#0x28
0000010C F7FF BL DelayNS?T ; T=0x0001 (1)
0000010E FF78 BL DelayNS?T ; T=0x0001 (2)
101: }
00000110 3401 ADD R4,#0x1
00000112 1C20 MOV R0,R4 ; j
00000114 2804 CMP R0,#0x4 ; j
00000116 D3EC BCC L_39 ; T=0x000000F2
104: for (j=0; j<10; j++)
00000118 2400 MOV R4,#0x0
0000011A L_46:
106: IO1PIN = 0xA5 << 18; // 点亮LED1,LED3,LED5,LED7,其余熄灭
0000011A 4800 LDR R1,=0x2940000
0000011C 4800 LDR R0,=0xE0028010
0000011E 6001 STR R1,[R0,#0x0]
107: DelayNS(50);
00000120 2032 MOV R0,#0x32
00000122 F7FF BL DelayNS?T ; T=0x0001 (1)
00000124 FF6D BL DelayNS?T ; T=0x0001 (2)
108: IO1PIN = 0x5A << 18; // 点亮LED2,LED4,LED6,LED8,其余熄灭
00000126 4800 LDR R1,=0x1680000
00000128 4800 LDR R0,=0xE0028010
0000012A 6001 STR R1,[R0,#0x0]
109: DelayNS(10);
0000012C 200A MOV R0,#0xA
0000012E F7FF BL DelayNS?T ; T=0x0001 (1)
00000130 FF67 BL DelayNS?T ; T=0x0001 (2)
110: }
00000132 3401 ADD R4,#0x1
00000134 1C20 MOV R0,R4 ; j
00000136 280A CMP R0,#0xA ; j
00000138 D3EF BCC L_46 ; T=0x0000011A
113: for (j=0; j<30; j++)
0000013A 2400 MOV R4,#0x0
0000013C L_51:
115: IO1PIN = ~IO1SET; // 点亮LED1,LED3,LED5,LED7,其余熄灭
0000013C 4800 LDR R0,=0xE0028014
0000013E 6801 LDR R1,[R0,#0x0]
00000140 43C9 MVN R1,R1
00000142 4800 LDR R0,=0xE0028010
00000144 6001 STR R1,[R0,#0x0]
116: DelayNS(10);
00000146 200A MOV R0,#0xA
00000148 F7FF BL DelayNS?T ; T=0x0001 (1)
0000014A FF5A BL DelayNS?T ; T=0x0001 (2)
117: }
0000014C 3401 ADD R4,#0x1
0000014E 1C20 MOV R0,R4 ; j
ARM COMPILER V2.53, Main 03/03/09 22:31:59 PAGE 9
00000150 281E CMP R0,#0x1E ; j
00000152 D3F3 BCC L_51 ; T=0x0000013C
120: while (1)
00000154 L_55:
122: if ((IO0PIN & KEY1) == 0) IO0CLR = BEEP; // 如果KEY1按下,蜂鸣器鸣叫
00000154 4800 LDR R0,=KEY1 ; KEY1
00000156 6801 LDR R1,[R0,#0x0] ; KEY1
00000158 4800 LDR R0,=0xE0028000
0000015A 6800 LDR R0,[R0,#0x0]
0000015C 4008 AND R0,R1
0000015E 2800 CMP R0,#0x0
00000160 D103 BNE L_57 ; T=0x0000016A
00000162 2180 MOV R1,#0x80
00000164 4800 LDR R0,=0xE002800C
00000166 6001 STR R1,[R0,#0x0]
00000168 E7F4 B L_55 ; T=0x00000154
0000016A L_57:
123: else IO0SET = BEEP; // 松开则停止蜂鸣
0000016A 2180 MOV R1,#0x80
0000016C 4800 LDR R0,=0xE0028004
0000016E 6001 STR R1,[R0,#0x0]
124: }
00000170 E7F0 B L_55 ; T=0x00000154
127: return 0;
00000172 ; SCOPE-END
128: }
00000172 BC08 POP {R3}
00000174 4718 BX R3
00000176 ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = 180
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -