📄 usart.lst
字号:
0000001C L_11:
0000001C L_8:
0000001C 4800 LDR R0,=0xFFFC0014
0000001E 6800 LDR R0,[R0,#0x0]
00000020 2202 MOV R2,#0x2
00000022 4210 TST R0,R2
00000024 D0FA BEQ L_8 ; T=0x0000001C
100: return (*AT91C_US0_THR = ch); // Transmit Character
00000026 1C08 MOV R0,R1 ; ch
00000028 0600 LSL R0,R0,#0x18 ; ch
0000002A 0E00 LSR R0,R0,#0x18
0000002C 4800 LDR R1,=0xFFFC001C
0000002E 6008 STR R0,[R1,#0x0]
101: }
00000030 4770 BX R14
00000032 ENDP ; 'putcharme?T'
*** CODE SEGMENT '?PR?helloworld?T?usart':
104: void helloworld(void)
00000000 B500 PUSH {LR}
00000002 B084 SUB R13,#0x10
105: {
00000004 ; SCOPE-START
106: unsigned char hello[]={'h','e','l','l','o',' ','w','o','r','l','d','!','\n',};
00000004 4800 LDR R1,=?tpl?0001 ; ?tpl?0001
00000006 A800 ADD R0,R13,#0x0
00000008 220D MOV R2,#0xD
0000000A L_39:
0000000A 780B LDRB R3,[R1,#0x0]
0000000C 7003 STRB R3,[R0,#0x0]
0000000E 1C49 ADD R1,R1,#0x1
00000010 1C40 ADD R0,R0,#0x1
00000012 1E52 SUB R2,R2,#0x1
00000014 D1F9 BNE L_39 ; T=0x0000000A
108: for(i=0;i<13;i++)
00000016 2300 MOV R3,#0x0
00000018 ---- Variable 'i' assigned to Register 'R3' ----
00000018 E009 B L_15 ; T=0x0000002E
0000001A L_16:
110: putcharme(hello[i]);
0000001A 1C18 MOV R0,R3 ; i
0000001C 0601 LSL R1,R0,#0x18 ; i
0000001E 0E09 LSR R1,R1,#0x18
00000020 A800 ADD R0,R13,#0x0
00000022 5C40 LDRB R0,[R0,R1]
00000024 F7FF BL putcharme?T ; T=0x0001 (1)
00000026 FFEC BL putcharme?T ; T=0x0001 (2)
111: }
00000028 3301 ADD R3,#0x1
0000002A 061B LSL R3,R3,#0x18
0000002C 0E1B LSR R3,R3,#0x18
0000002E L_15:
0000002E 1C18 MOV R0,R3 ; i
ARM COMPILER V2.53, usart 19/07/06 08:38:09 PAGE 9
00000030 0600 LSL R0,R0,#0x18 ; i
00000032 0E00 LSR R0,R0,#0x18
00000034 280D CMP R0,#0xD
00000036 DBF0 BLT L_16 ; T=0x0000001A
00000038 ; SCOPE-END
112: }
00000038 B004 ADD R13,#0x10
0000003A BC08 POP {R3}
0000003C 4718 BX R3
0000003E ENDP ; 'helloworld?T'
*** CODE SEGMENT '?PR?USART0_send_string?T?usart':
114: void USART0_send_string(unsigned char *bpSendData,unsigned int length)
00000000 B510 PUSH {R4,LR}
00000002 1C0C MOV R4,R1 ; length
00000004 ---- Variable 'length' assigned to Register 'R4' ----
00000004 1C03 MOV R3,R0 ; bpSendData
00000006 ---- Variable 'bpSendData' assigned to Register 'R3' ----
116: while(length--)
00000006 E004 B L_18 ; T=0x00000012
00000008 L_20:
118: putcharme(*(bpSendData++));
00000008 1C18 MOV R0,R3 ; bpSendData
0000000A 3301 ADD R3,#0x1
0000000C 7800 LDRB R0,[R0,#0x0] ; bpSendData
0000000E F7FF BL putcharme?T ; T=0x0001 (1)
00000010 FFF7 BL putcharme?T ; T=0x0001 (2)
119: }
00000012 L_18:
00000012 1C20 MOV R0,R4 ; length
00000014 3C01 SUB R4,#0x1
00000016 2800 CMP R0,#0x0 ; length
00000018 D1F6 BNE L_20 ; T=0x00000008
120: putcharme(0x0a);
0000001A 200A MOV R0,#0xA
0000001C F7FF BL putcharme?T ; T=0x0001 (1)
0000001E FFF0 BL putcharme?T ; T=0x0001 (2)
121: }
00000020 BC10 POP {R4}
00000022 BC08 POP {R3}
00000024 4718 BX R3
00000026 ENDP ; 'USART0_send_string?T'
*** CODE SEGMENT '?PR?Receivechar?T?usart':
124: if ((*AT91C_US0_CSR) & AT91C_US_RXRDY)
00000000 4800 LDR R0,=0xFFFC0014
00000002 6800 LDR R0,[R0,#0x0]
00000004 2101 MOV R1,#0x1
00000006 4208 TST R0,R1
00000008 D00B BEQ L_22 ; T=0x00000022
126: bpRBuff[g_bRBuffpiont] = *AT91C_US0_RHR;
0000000A 4800 LDR R0,=0xFFFC0018
0000000C 6800 LDR R0,[R0,#0x0]
0000000E 0600 LSL R0,R0,#0x18
00000010 0E00 LSR R0,R0,#0x18
00000012 4800 LDR R1,=g_bRBuffpiont ; g_bRBuffpiont
00000014 7809 LDRB R1,[R1,#0x0] ; g_bRBuffpiont
00000016 1C0B MOV R3,R1
00000018 4800 LDR R2,=bpRBuff ; bpRBuff
0000001A 54D0 STRB R0,[R2,R3]
127: g_bRBuffpiont++;
0000001C 4800 LDR R0,=g_bRBuffpiont ; g_bRBuffpiont
0000001E 3101 ADD R1,#0x1
00000020 7001 STRB R1,[R0,#0x0] ; g_bRBuffpiont
128: }
00000022 L_22:
129: }
00000022 4770 BX R14
ARM COMPILER V2.53, usart 19/07/06 08:38:09 PAGE 10
00000024 ENDP ; 'Receivechar?T'
*** CODE SEGMENT '?PR?Usart1_putchar?T?usart':
130: unsigned char Usart1_putchar (unsigned char ch)
00000000 1C01 MOV R1,R0 ; ch
00000002 ---- Variable 'ch' assigned to Register 'R1' ----
132: if (ch == '\n')
00000002 1C08 MOV R0,R1 ; ch
00000004 0600 LSL R0,R0,#0x18 ; ch
00000006 0E00 LSR R0,R0,#0x18
00000008 280A CMP R0,#0xA
0000000A D107 BNE L_31 ; T=0x0000001C
134: while (!((*AT91C_US1_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
0000000C L_24:
0000000C 4800 LDR R0,=0xFFFC4014
0000000E 6800 LDR R0,[R0,#0x0]
00000010 2202 MOV R2,#0x2
00000012 4210 TST R0,R2
00000014 D0FA BEQ L_24 ; T=0x0000000C
135: *AT91C_US1_THR = '\r'; // Output CR
00000016 220D MOV R2,#0xD
00000018 4800 LDR R0,=0xFFFC401C
0000001A 6002 STR R2,[R0,#0x0]
137: while (!((*AT91C_US1_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
0000001C L_31:
0000001C L_28:
0000001C 4800 LDR R0,=0xFFFC4014
0000001E 6800 LDR R0,[R0,#0x0]
00000020 2202 MOV R2,#0x2
00000022 4210 TST R0,R2
00000024 D0FA BEQ L_28 ; T=0x0000001C
138: return (*AT91C_US1_THR = ch); // Transmit Character
00000026 1C08 MOV R0,R1 ; ch
00000028 0600 LSL R0,R0,#0x18 ; ch
0000002A 0E00 LSR R0,R0,#0x18
0000002C 4800 LDR R1,=0xFFFC401C
0000002E 6008 STR R0,[R1,#0x0]
139: }
00000030 4770 BX R14
00000032 ENDP ; 'Usart1_putchar?T'
*** CODE SEGMENT '?PR?hello_laogao?T?usart':
141: void hello_laogao(void)
00000000 B500 PUSH {LR}
00000002 B084 SUB R13,#0x10
142: {
00000004 ; SCOPE-START
143: unsigned char hello1[]={'h','e','l','l','o',' ','L','a','o','g','a','o','\n',};
00000004 4800 LDR R1,=?tpl?0002 ; ?tpl?0002
00000006 A800 ADD R0,R13,#0x0
00000008 220D MOV R2,#0xD
0000000A L_41:
0000000A 780B LDRB R3,[R1,#0x0]
0000000C 7003 STRB R3,[R0,#0x0]
0000000E 1C49 ADD R1,R1,#0x1
00000010 1C40 ADD R0,R0,#0x1
00000012 1E52 SUB R2,R2,#0x1
00000014 D1F9 BNE L_41 ; T=0x0000000A
146: for(i=0;i<13;i++)
00000016 2300 MOV R3,#0x0
00000018 ---- Variable 'i' assigned to Register 'R3' ----
00000018 E009 B L_35 ; T=0x0000002E
0000001A L_36:
148: Usart1_putchar(hello1[i]);
0000001A 1C18 MOV R0,R3 ; i
0000001C 0601 LSL R1,R0,#0x18 ; i
0000001E 0E09 LSR R1,R1,#0x18
00000020 A800 ADD R0,R13,#0x0
ARM COMPILER V2.53, usart 19/07/06 08:38:09 PAGE 11
00000022 5C40 LDRB R0,[R0,R1]
00000024 F7FF BL Usart1_putchar?T ; T=0x0001 (1)
00000026 FFEC BL Usart1_putchar?T ; T=0x0001 (2)
149: }
00000028 3301 ADD R3,#0x1
0000002A 061B LSL R3,R3,#0x18
0000002C 0E1B LSR R3,R3,#0x18
0000002E L_35:
0000002E 1C18 MOV R0,R3 ; i
00000030 0600 LSL R0,R0,#0x18 ; i
00000032 0E00 LSR R0,R0,#0x18
00000034 280D CMP R0,#0xD
00000036 DBF0 BLT L_36 ; T=0x0000001A
00000038 ; SCOPE-END
00000038 B004 ADD R13,#0x10
0000003A BC08 POP {R3}
0000003C 4718 BX R3
0000003E ENDP ; 'hello_laogao?T'
Module Information Static
----------------------------------
code size = ------
data size = 278
const size = 29
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -