📄 myuart.lst
字号:
000001B6 7801 LDRB R1,[R0,#0x0] ; a7
000001B8 4800 LDR R0,=0x10000011
000001BA 7001 STRB R1,[R0,#0x0]
000001BC A804 ADD R0,R13,#0x10
000001BE 7801 LDRB R1,[R0,#0x0] ; a8
000001C0 4800 LDR R0,=0x10000012
ARM COMPILER V2.42, myuart 16/09/08 08:08:57 PAGE 11
000001C2 7001 STRB R1,[R0,#0x0]
000001C4 A805 ADD R0,R13,#0x14
000001C6 7801 LDRB R1,[R0,#0x0] ; a9
000001C8 4800 LDR R0,=0x10000013
000001CA 7001 STRB R1,[R0,#0x0]
107: }
000001CC L_31:
108: reg_CMR=0X01;
000001CC 2101 MOV R1,#0x1
000001CE 4800 LDR R0,=0x10000001
000001D0 7001 STRB R1,[R0,#0x0]
000001D2 ; SCOPE-END
109: }
000001D2 BC70 POP {R4-R6}
000001D4 4770 BX R14
000001D6 ENDP ; 'sendmessage?T'
*** CODE SEGMENT '?PR?rsvmessage?T?myuart':
111: void rsvmessage()
00000000 B410 PUSH {R4}
112: {
00000002 ; SCOPE-START
115: if(reg_SR&0x03)
00000002 4800 LDR R0,=0x10000002
00000004 7800 LDRB R0,[R0,#0x0]
00000006 2103 MOV R1,#0x3
00000008 4208 TST R0,R1
0000000A D041 BEQ L_42 ; T=0x00000090
117: flag_IR=reg_IR;
0000000C 4800 LDR R1,=0x10000003
0000000E 780A LDRB R2,[R1,#0x0]
00000010 ---- Variable 'flag_IR' assigned to Register 'R2' ----
118: if(flag_IR&0x01)
00000010 1C11 MOV R1,R2 ; flag_IR
00000012 0609 LSL R1,R1,#0x18 ; flag_IR
00000014 0E09 LSR R1,R1,#0x18
00000016 2201 MOV R2,#0x1
00000018 4211 TST R1,R2
0000001A D033 BEQ L_43 ; T=0x00000084
120: do{}while(reg_SR&0x10);
0000001C L_46:
0000001C 4800 LDR R1,=0x10000002
0000001E 7809 LDRB R1,[R1,#0x0]
00000020 2210 MOV R2,#0x10
00000022 4211 TST R1,R2
00000024 D1FA BNE L_46 ; T=0x0000001C
121: iRecData[0]=reg_Rsvone;
00000026 4800 LDR R1,=0x10000014
00000028 780A LDRB R2,[R1,#0x0]
0000002A 4800 LDR R1,=iRecData ; iRecData
0000002C 700A STRB R2,[R1,#0x0] ; iRecData
122: iRecData[1]=reg_Rsvtwo;
0000002E 4800 LDR R1,=0x10000015
00000030 780A LDRB R2,[R1,#0x0]
00000032 4800 LDR R1,=iRecData + 0x1 ; iRecData+1
00000034 700A STRB R2,[R1,#0x0] ; iRecData+1
123: dlc=iRecData[1]&0x0f;
00000036 4800 LDR R1,=iRecData + 0x1 ; iRecData+1
00000038 7809 LDRB R1,[R1,#0x0] ; iRecData+1
0000003A 1C0A MOV R2,R1
0000003C 210F MOV R1,#0xF
0000003E 400A AND R2,R1
00000040 0612 LSL R2,R2,#0x18
00000042 0E12 LSR R2,R2,#0x18
00000044 4800 LDR R1,=dlc ; dlc
00000046 700A STRB R2,[R1,#0x0] ; dlc
124: for(i=0;i<dlc;i++)
ARM COMPILER V2.42, myuart 16/09/08 08:08:57 PAGE 12
00000048 2100 MOV R1,#0x0
0000004A ---- Variable 'i' assigned to Register 'R1' ----
0000004A E00C B L_50 ; T=0x00000066
0000004C L_51:
126: iRecData[i+2]=*(®_Rsvdata1+i);
0000004C 1C0A MOV R2,R1 ; i
0000004E 0613 LSL R3,R2,#0x18 ; i
00000050 0E1B LSR R3,R3,#0x18
00000052 4800 LDR R2,=0x10000016
00000054 5CD2 LDRB R2,[R2,R3]
00000056 1C0B MOV R3,R1 ; i
00000058 061C LSL R4,R3,#0x18 ; i
0000005A 0E24 LSR R4,R4,#0x18
0000005C 4800 LDR R3,=iRecData + 0x2 ; iRecData+2
0000005E 551A STRB R2,[R3,R4]
127: }
00000060 3101 ADD R1,#0x1
00000062 0609 LSL R1,R1,#0x18
00000064 0E09 LSR R1,R1,#0x18
00000066 L_50:
00000066 4800 LDR R2,=dlc ; dlc
00000068 7812 LDRB R2,[R2,#0x0] ; dlc
0000006A 1C13 MOV R3,R2
0000006C 1C0A MOV R2,R1 ; i
0000006E 0612 LSL R2,R2,#0x18 ; i
00000070 0E12 LSR R2,R2,#0x18
00000072 429A CMP R2,R3
00000074 D3EA BCC L_51 ; T=0x0000004C
128: reg_CMR=0x04;
00000076 2204 MOV R2,#0x4
00000078 4800 LDR R1,=0x10000001
0000007A 700A STRB R2,[R1,#0x0]
129: flagdata=1;
0000007C 2201 MOV R2,#0x1
0000007E 4800 LDR R1,=flagdata ; flagdata
00000080 700A STRB R2,[R1,#0x0] ; flagdata
130: }
00000082 E005 B L_42 ; T=0x00000090
00000084 L_43:
133: if(reg_SR&0x02) reg_CMR=0x0c;
00000084 2102 MOV R1,#0x2
00000086 4208 TST R0,R1
00000088 D002 BEQ L_42 ; T=0x00000090
0000008A 210C MOV R1,#0xC
0000008C 4800 LDR R0,=0x10000001
0000008E 7001 STRB R1,[R0,#0x0]
135: }
00000090 L_42:
00000090 ; SCOPE-END
136: }
00000090 BC10 POP {R4}
00000092 4770 BX R14
00000094 ENDP ; 'rsvmessage?T'
*** CODE SEGMENT '?PR?hex2ascii?T?myuart':
139: uchar hex2ascii(uchar toconv)
00000000 1C01 MOV R1,R0 ; toconv
00000002 ---- Variable 'toconv' assigned to Register 'R1' ----
141: if (toconv<0x0A)
00000002 1C08 MOV R0,R1 ; toconv
00000004 0600 LSL R0,R0,#0x18 ; toconv
00000006 0E00 LSR R0,R0,#0x18
00000008 280A CMP R0,#0xA
0000000A DA03 BGE L_55 ; T=0x00000014
143: toconv += 0x30;
0000000C 3130 ADD R1,#0x30
0000000E 0609 LSL R1,R1,#0x18
ARM COMPILER V2.42, myuart 16/09/08 08:08:57 PAGE 13
00000010 0E09 LSR R1,R1,#0x18
144: }
00000012 E002 B L_56 ; T=0x0000001A
00000014 L_55:
147: toconv += 0x37;
00000014 3137 ADD R1,#0x37
00000016 0609 LSL R1,R1,#0x18
00000018 0E09 LSR R1,R1,#0x18
148: }
0000001A L_56:
150: return (toconv);
0000001A 1C08 MOV R0,R1 ; toconv
0000001C 0600 LSL R0,R0,#0x18 ; toconv
0000001E 0E00 LSR R0,R0,#0x18
151: }
00000020 4770 BX R14
00000022 ENDP ; 'hex2ascii?T'
*** CODE SEGMENT '?PR?senddata?T?myuart':
154: void senddata(uchar to_send) {
00000000 B500 PUSH {LR}
00000002 1C02 MOV R2,R0 ; to_send
00000004 ---- Variable 'to_send' assigned to Register 'R2' ----
155: while(!(0x020==(COMSTA0 & 0x020))){}
00000004 L_58:
00000004 4800 LDR R0,=0xFFFF0714
00000006 6800 LDR R0,[R0,#0x0]
00000008 2120 MOV R1,#0x20
0000000A 4208 TST R0,R1
0000000C D0FA BEQ L_58 ; T=0x00000004
156: COMTX = 0x0A; //Output LF
0000000E 210A MOV R1,#0xA
00000010 4800 LDR R0,=0xFFFF0700
00000012 6001 STR R1,[R0,#0x0]
157: while(!(0x020==(COMSTA0 & 0x020))){}
00000014 L_62:
00000014 4800 LDR R0,=0xFFFF0714
00000016 6800 LDR R0,[R0,#0x0]
00000018 2120 MOV R1,#0x20
0000001A 4208 TST R0,R1
0000001C D0FA BEQ L_62 ; T=0x00000014
158: COMTX = 0x0D; //Output CR
0000001E 210D MOV R1,#0xD
00000020 4800 LDR R0,=0xFFFF0700
00000022 6001 STR R1,[R0,#0x0]
159: while(!(0x020==(COMSTA0 & 0x020))){}
00000024 L_66:
00000024 4800 LDR R0,=0xFFFF0714
00000026 6800 LDR R0,[R0,#0x0]
00000028 2120 MOV R1,#0x20
0000002A 4208 TST R0,R1
0000002C D0FA BEQ L_66 ; T=0x00000024
160: COMTX = hex2ascii ((to_send >> 4) & 0x0F);
0000002E 1C10 MOV R0,R2 ; to_send
00000030 0600 LSL R0,R0,#0x18 ; to_send
00000032 0E00 LSR R0,R0,#0x18
00000034 0900 LSR R0,R0,#0x4
00000036 210F MOV R1,#0xF
00000038 4008 AND R0,R1
0000003A F7FF BL hex2ascii?T ; T=0x0001 (1)
0000003C FFE1 BL hex2ascii?T ; T=0x0001 (2)
0000003E 0601 LSL R1,R0,#0x18 ; hex2ascii?T
00000040 0E09 LSR R1,R1,#0x18
00000042 4800 LDR R0,=0xFFFF0700
00000044 6001 STR R1,[R0,#0x0]
161: while(!(0x020==(COMSTA0 & 0x020))){}
00000046 L_70:
ARM COMPILER V2.42, myuart 16/09/08 08:08:57 PAGE 14
00000046 4800 LDR R0,=0xFFFF0714
00000048 6800 LDR R0,[R0,#0x0]
0000004A 2120 MOV R1,#0x20
0000004C 4208 TST R0,R1
0000004E D0FA BEQ L_70 ; T=0x00000046
162: COMTX = hex2ascii (to_send & 0x0F);
00000050 1C10 MOV R0,R2 ; to_send
00000052 0600 LSL R0,R0,#0x18 ; to_send
00000054 0E00 LSR R0,R0,#0x18
00000056 210F MOV R1,#0xF
00000058 4008 AND R0,R1
0000005A F7FF BL hex2ascii?T ; T=0x0001 (1)
0000005C FFD1 BL hex2ascii?T ; T=0x0001 (2)
0000005E 0601 LSL R1,R0,#0x18 ; hex2ascii?T
00000060 0E09 LSR R1,R1,#0x18
00000062 4800 LDR R0,=0xFFFF0700
00000064 6001 STR R1,[R0,#0x0]
163: }
00000066 BC08 POP {R3}
00000068 4718 BX R3
0000006A ENDP ; 'senddata?T'
*** CODE SEGMENT '?PR?main?myuart':
166: void main()
00000000 B500 PUSH {LR}
167: {
00000002 ; SCOPE-START
168: int k=1;
00000002 2501 MOV R5,#0x1
00000004 ---- Variable 'k' assigned to Register 'R5' ----
169: uchar temp1=1;
00000004 2401 MOV R4,#0x1
00000006 ---- Variable 'temp1' assigned to Register 'R4' ----
170: Init();
00000006 F7FF BL Init?T ; T=0x0001 (1)
00000008 FFFB BL Init?T ; T=0x0001 (2)
172: sendmessage(0x39,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x08);
0000000A 2108 MOV R1,#0x8
0000000C B402 PUSH {R1}
0000000E 2006 MOV R0,#0x6
00000010 B401 PUSH {R0}
00000012 B401 PUSH {R0}
00000014 2005 MOV R0,#0x5
00000016 B401 PUSH {R0}
00000018 2004 MOV R0,#0x4
0000001A B401 PUSH {R0}
0000001C 2003 MOV R0,#0x3
0000001E B401 PUSH {R0}
00000020 2039 MOV R0,#0x39
00000022 2201 MOV R2,#0x1
00000024 2302 MOV R3,#0x2
00000026 F7FF BL sendmessage?T ; T=0x0001 (1)
00000028 FFEB BL sendmessage?T ; T=0x0001 (2)
0000002A B006 ADD R13,#0x18
173: Delay(1);
0000002C 2001 MOV R0,#0x1
0000002E F7FF BL Delay?T ; T=0x0001 (1)
00000030 FFE7 BL Delay?T ; T=0x0001 (2)
174: while(temp1)
00000032 E01D B L_74 ; T=0x00000070
00000034 L_76:
176: sendmessage(0x37,0x08,k,0x02,0x03,0x05,0x05,0x06,0x06,0x08);
00000034 2108 MOV R1,#0x8
00000036 B402 PUSH {R1}
00000038 2006 MOV R0,#0x6
0000003A B401 PUSH {R0}
0000003C B401 PUSH {R0}
ARM COMPILER V2.42, myuart 16/09/08 08:08:57 PAGE 15
0000003E 2005 MOV R0,#0x5
00000040 B401 PUSH {R0}
00000042 B401 PUSH {R0}
00000044 2003 MOV R0,#0x3
00000046 B401 PUSH {R0}
00000048 1C2A MOV R2,R5 ; k
0000004A 2037 MOV R0,#0x37
0000004C 2302 MOV R3,#0x2
0000004E F7FF BL sendmessage?T ; T=0x0001 (1)
00000050 FFD7 BL sendmessage?T ; T=0x0001 (2)
00000052 B006 ADD R13,#0x18
177: Delay(100000);
00000054 4800 LDR R0,=0x186A0
00000056 F7FF BL Delay?T ; T=0x0001 (1)
00000058 FFD3 BL Delay?T ; T=0x0001 (2)
178: Delay(100000);
0000005A 4800 LDR R0,=0x186A0
0000005C F7FF BL Delay?T ; T=0x0001 (1)
0000005E FFD0 BL Delay?T ; T=0x0001 (2)
179: Delay(100000);
00000060 4800 LDR R0,=0x186A0
00000062 F7FF BL Delay?T ; T=0x0001 (1)
00000064 FFCD BL Delay?T ; T=0x0001 (2)
180: k++;
00000066 3501 ADD R5,#0x1
181: if(k==100)k=1;
00000068 1C28 MOV R0,R5 ; k
0000006A 2864 CMP R0,#0x64 ; k
0000006C D100 BNE L_74 ; T=0x00000070
0000006E 2501 MOV R5,#0x1
182: }
00000070 L_74:
00000070 1C20 MOV R0,R4 ; temp1
00000072 2800 CMP R0,#0x0 ; temp1
00000074 D1DE BNE L_76 ; T=0x00000034
00000076 ; SCOPE-END
184: }
00000076 BC08 POP {R3}
00000078 4718 BX R3
0000007A ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = 12
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 + -