📄 main.lst
字号:
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 + -