📄 vcomuser.lst
字号:
00000004 0600 LSL R0,R0,#0x18 ; portNum
00000006 0E00 LSR R0,R0,#0x18
00000008 2800 CMP R0,#0x0
0000000A D117 BNE L_32 ; T=0x0000003C
475: if (ch == '\n') {
0000000C 1C08 MOV R0,R1 ; ch
0000000E 280A CMP R0,#0xA ; ch
00000010 D107 BNE L_41 ; T=0x00000022
476: while (!(U0LSR & 0x20));
00000012 L_34:
00000012 4800 LDR R0,=0xE000C014
00000014 7800 LDRB R0,[R0,#0x0]
00000016 2220 MOV R2,#0x20
00000018 4210 TST R0,R2
0000001A D0FA BEQ L_34 ; T=0x00000012
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 20
477: U0THR = CR; /* output CR */
0000001C 220D MOV R2,#0xD
0000001E 4800 LDR R0,=0xE000C000
00000020 7002 STRB R2,[R0,#0x0]
479: while (!(U0LSR & 0x20));
00000022 L_41:
00000022 L_38:
00000022 4800 LDR R0,=0xE000C014
00000024 7800 LDRB R0,[R0,#0x0]
00000026 2220 MOV R2,#0x20
00000028 4210 TST R0,R2
0000002A D0FA BEQ L_38 ; T=0x00000022
480: return (U0THR = ch);
0000002C 1C08 MOV R0,R1 ; ch
0000002E 0600 LSL R0,R0,#0x18 ; ch
00000030 0E00 LSR R0,R0,#0x18
00000032 4800 LDR R2,=0xE000C000
00000034 7010 STRB R0,[R2,#0x0]
00000036 0600 LSL R0,R0,#0x18
00000038 0E00 LSR R0,R0,#0x18
0000003A E016 B L_42 ; T=0x0000006A
481: }
0000003C L_32:
483: if (ch == '\n') {
0000003C 1C08 MOV R0,R1 ; ch
0000003E 280A CMP R0,#0xA ; ch
00000040 D107 BNE L_52 ; T=0x00000052
484: while (!(U1LSR & 0x20));
00000042 L_45:
00000042 4800 LDR R0,=0xE0010014
00000044 7800 LDRB R0,[R0,#0x0]
00000046 2220 MOV R2,#0x20
00000048 4210 TST R0,R2
0000004A D0FA BEQ L_45 ; T=0x00000042
485: U1THR = CR; /* output CR */
0000004C 220D MOV R2,#0xD
0000004E 4800 LDR R0,=0xE0010000
00000050 7002 STRB R2,[R0,#0x0]
487: while (!(U1LSR & 0x20));
00000052 L_52:
00000052 L_49:
00000052 4800 LDR R0,=0xE0010014
00000054 7800 LDRB R0,[R0,#0x0]
00000056 2220 MOV R2,#0x20
00000058 4210 TST R0,R2
0000005A D0FA BEQ L_49 ; T=0x00000052
488: return (U1THR = ch);
0000005C 1C08 MOV R0,R1 ; ch
0000005E 0600 LSL R0,R0,#0x18 ; ch
00000060 0E00 LSR R0,R0,#0x18
00000062 4800 LDR R1,=0xE0010000
00000064 7008 STRB R0,[R1,#0x0]
00000066 0600 LSL R0,R0,#0x18
00000068 0E00 LSR R0,R0,#0x18
490: }
0000006A L_42:
0000006A 4770 BX R14
0000006C ENDP ; 'putchar?T'
*** CODE SEGMENT '?PR?getchar?T?VCOMuser':
492: int getchar ( BYTE portNum ) { /* Read character from Serial Port */
00000000 1C01 MOV R1,R0 ; portNum
00000002 ---- Variable 'portNum' assigned to Register 'R1' ----
494: if ( portNum == 0 ) {
00000002 1C08 MOV R0,R1 ; portNum
00000004 0600 LSL R0,R0,#0x18 ; portNum
00000006 0E00 LSR R0,R0,#0x18
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 21
00000008 2800 CMP R0,#0x0
0000000A D107 BNE L_63 ; T=0x0000001C
495: while (!(U0LSR & 0x01));
0000000C L_54:
0000000C 4800 LDR R0,=0xE000C014
0000000E 7800 LDRB R0,[R0,#0x0]
00000010 2101 MOV R1,#0x1
00000012 4208 TST R0,R1
00000014 D0FA BEQ L_54 ; T=0x0000000C
496: return (U0RBR);
00000016 4800 LDR R0,=0xE000C000
00000018 7800 LDRB R0,[R0,#0x0]
0000001A E006 B L_58 ; T=0x0000002A
499: while (!(U1LSR & 0x01));
0000001C L_63:
0000001C L_60:
0000001C 4800 LDR R0,=0xE0010014
0000001E 7800 LDRB R0,[R0,#0x0]
00000020 2101 MOV R1,#0x1
00000022 4208 TST R0,R1
00000024 D0FA BEQ L_60 ; T=0x0000001C
500: return (U1RBR);
00000026 4800 LDR R0,=0xE0010000
00000028 7800 LDRB R0,[R0,#0x0]
502: }
0000002A L_58:
0000002A 4770 BX R14
0000002C ENDP ; 'getchar?T'
*** CODE SEGMENT '?PR?SetSIOBaudrate?T?VCOMuser':
505: void SetSIOBaudrate( BYTE channelNum, BYTE Data )
00000000 B410 PUSH {R4}
00000002 ---- Variable 'Data' assigned to Register 'R1' ----
00000002 1C02 MOV R2,R0 ; channelNum
00000004 ---- Variable 'channelNum' assigned to Register 'R2' ----
514: if ( channelNum == 0 ) {
00000004 1C10 MOV R0,R2 ; channelNum
00000006 0600 LSL R0,R0,#0x18 ; channelNum
00000008 0E00 LSR R0,R0,#0x18
0000000A 2800 CMP R0,#0x0
0000000C D148 BNE L_64 ; T=0x000000A0
515: U0FCR = 0x07; /* Enable and reset TX and RX FIFO. */
0000000E 2307 MOV R3,#0x7
00000010 4800 LDR R0,=0xE000C008
00000012 7003 STRB R3,[R0,#0x0]
516: U0LCR |= 0x80;
00000014 2480 MOV R4,#0x80
00000016 4800 LDR R0,=0xE000C00C
00000018 7803 LDRB R3,[R0,#0x0]
0000001A 4323 ORR R3,R4
0000001C 7003 STRB R3,[R0,#0x0]
517: if ( Data == 0x01 ) {
0000001E 1C08 MOV R0,R1 ; Data
00000020 0600 LSL R0,R0,#0x18 ; Data
00000022 0E00 LSR R0,R0,#0x18
00000024 2801 CMP R0,#0x1
00000026 D106 BNE L_65 ; T=0x00000036
518: U0DLL = 0x20;
00000028 2320 MOV R3,#0x20
0000002A 4800 LDR R0,=0xE000C000
0000002C 7003 STRB R3,[R0,#0x0]
519: U0DLM = 0x00;
0000002E 2300 MOV R3,#0x0
00000030 4800 LDR R0,=0xE000C004
00000032 7003 STRB R3,[R0,#0x0]
520: }
00000034 E02E B L_66 ; T=0x00000094
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 22
00000036 L_65:
521: else if ( Data == 0x02 ) {
00000036 1C08 MOV R0,R1 ; Data
00000038 0600 LSL R0,R0,#0x18 ; Data
0000003A 0E00 LSR R0,R0,#0x18
0000003C 2802 CMP R0,#0x2
0000003E D106 BNE L_67 ; T=0x0000004E
522: U0DLL = 0x41;
00000040 2341 MOV R3,#0x41
00000042 4800 LDR R0,=0xE000C000
00000044 7003 STRB R3,[R0,#0x0]
523: U0DLM = 0x00;
00000046 2300 MOV R3,#0x0
00000048 4800 LDR R0,=0xE000C004
0000004A 7003 STRB R3,[R0,#0x0]
524: }
0000004C E022 B L_66 ; T=0x00000094
0000004E L_67:
525: else if ( Data == 0x03 ) {
0000004E 1C08 MOV R0,R1 ; Data
00000050 0600 LSL R0,R0,#0x18 ; Data
00000052 0E00 LSR R0,R0,#0x18
00000054 2803 CMP R0,#0x3
00000056 D106 BNE L_69 ; T=0x00000066
526: U0DLL = 0x61;
00000058 2361 MOV R3,#0x61
0000005A 4800 LDR R0,=0xE000C000
0000005C 7003 STRB R3,[R0,#0x0]
527: U0DLM = 0x00;
0000005E 2300 MOV R3,#0x0
00000060 4800 LDR R0,=0xE000C004
00000062 7003 STRB R3,[R0,#0x0]
528: }
00000064 E016 B L_66 ; T=0x00000094
00000066 L_69:
529: else if ( Data == 0x06 ) {
00000066 1C08 MOV R0,R1 ; Data
00000068 0600 LSL R0,R0,#0x18 ; Data
0000006A 0E00 LSR R0,R0,#0x18
0000006C 2806 CMP R0,#0x6
0000006E D106 BNE L_71 ; T=0x0000007E
530: U0DLL = 0xC3;
00000070 23C3 MOV R3,#0xC3
00000072 4800 LDR R0,=0xE000C000
00000074 7003 STRB R3,[R0,#0x0]
531: U0DLM = 0x00;
00000076 2300 MOV R3,#0x0
00000078 4800 LDR R0,=0xE000C004
0000007A 7003 STRB R3,[R0,#0x0]
532: }
0000007C E00A B L_66 ; T=0x00000094
0000007E L_71:
533: else if ( Data == 0x0C ) {
0000007E 1C08 MOV R0,R1 ; Data
00000080 0600 LSL R0,R0,#0x18 ; Data
00000082 0E00 LSR R0,R0,#0x18
00000084 280C CMP R0,#0xC
00000086 D105 BNE L_66 ; T=0x00000094
534: U0DLL = 0x86;
00000088 2386 MOV R3,#0x86
0000008A 4800 LDR R0,=0xE000C000
0000008C 7003 STRB R3,[R0,#0x0]
535: U0DLM = 0x01;
0000008E 2301 MOV R3,#0x1
00000090 4800 LDR R0,=0xE000C004
00000092 7003 STRB R3,[R0,#0x0]
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 23
536: }
00000094 L_66:
537: U0LCR &= ~0x80;
00000094 247F MOV R4,#0x7F
00000096 4800 LDR R0,=0xE000C00C
00000098 7803 LDRB R3,[R0,#0x0]
0000009A 4023 AND R3,R4
0000009C 7003 STRB R3,[R0,#0x0]
538: }
0000009E E04C B L_74 ; T=0x0000013A
000000A0 L_64:
539: else if ( channelNum == 1 ) {
000000A0 1C10 MOV R0,R2 ; channelNum
000000A2 0600 LSL R0,R0,#0x18 ; channelNum
000000A4 0E00 LSR R0,R0,#0x18
000000A6 2801 CMP R0,#0x1
000000A8 D147 BNE L_74 ; T=0x0000013A
540: U1FCR = 0x07; /* Enable and reset TX and RX FIFO. */
000000AA 2207 MOV R2,#0x7
000000AC 4800 LDR R0,=0xE0010008
000000AE 7002 STRB R2,[R0,#0x0]
541: U1LCR |= 0x80;
000000B0 2380 MOV R3,#0x80
000000B2 4800 LDR R0,=0xE001000C
000000B4 7802 LDRB R2,[R0,#0x0]
000000B6 431A ORR R2,R3
000000B8 7002 STRB R2,[R0,#0x0]
542: if ( Data == 0x01 ) {
000000BA 1C08 MOV R0,R1 ; Data
000000BC 0600 LSL R0,R0,#0x18 ; Data
000000BE 0E00 LSR R0,R0,#0x18
000000C0 2801 CMP R0,#0x1
000000C2 D106 BNE L_76 ; T=0x000000D2
543: U1DLL = 0x20;
000000C4 2220 MOV R2,#0x20
000000C6 4800 LDR R0,=0xE0010000
000000C8 7002 STRB R2,[R0,#0x0]
544: U1DLM = 0x00;
000000CA 2200 MOV R2,#0x0
000000CC 4800 LDR R0,=0xE0010004
000000CE 7002 STRB R2,[R0,#0x0]
545: }
000000D0 E02E B L_77 ; T=0x00000130
000000D2 L_76:
546: else if ( Data == 0x02 ) {
000000D2 1C08 MOV R0,R1 ; Data
000000D4 0600 LSL R0,R0,#0x18 ; Data
000000D6 0E00 LSR R0,R0,#0x18
000000D8 2802 CMP R0,#0x2
000000DA D106 BNE L_78 ; T=0x000000EA
547: U1DLL = 0x41;
000000DC 2241 MOV R2,#0x41
000000DE 4800 LDR R0,=0xE0010000
000000E0 7002 STRB R2,[R0,#0x0]
548: U1DLM = 0x00;
000000E2 2200 MOV R2,#0x0
000000E4 4800 LDR R0,=0xE0010004
000000E6 7002 STRB R2,[R0,#0x0]
549: }
000000E8 E022 B L_77 ; T=0x00000130
000000EA L_78:
550: else if ( Data == 0x03 ) {
000000EA 1C08 MOV R0,R1 ; Data
000000EC 0600 LSL R0,R0,#0x18 ; Data
000000EE 0E00 LSR R0,R0,#0x18
000000F0 2803 CMP R0,#0x3
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 24
000000F2 D106 BNE L_80 ; T=0x00000102
551: U1DLL = 0x61;
000000F4 2261 MOV R2,#0x61
000000F6 4800 LDR R0,=0xE0010000
000000F8 7002 STRB R2,[R0,#0x0]
552: U1DLM = 0x00;
000000FA 2200 MOV R2,#0x0
000000FC 4800 LDR R0,=0xE0010004
000000FE 7002 STRB R2,[R0,#0x0]
553: }
00000100 E016 B L_77 ; T=0x00000130
00000102 L_80:
554: else if ( Data == 0x06 ) {
00000102 1C08 MOV R0,R1 ; Data
00000104 0600 LSL R0,R0,#0x18 ; Data
00000106 0E00 LSR R0,R0,#0x18
00000108 2806 CMP R0,#0x6
0000010A D106 BNE L_82 ; T=0x0000011A
555: U1DLL = 0xC3;
0000010C 22C3 MOV R2,#0xC3
0000010E 4800 LDR R0,=0xE0010000
00000110 7002 STRB R2,[R0,#0x0]
556: U1DLM = 0x00;
00000112 2200 MOV R2,#0x0
00000114 4800 LDR R0,=0xE0010004
00000116 7002 STRB R2,[R0,#0x0]
557: }
00000118 E00A B L_77 ; T=0x00000130
0000011A L_82:
558: else if ( Data == 0x0C ) {
0000011A 1C08 MOV R0,R1 ; Data
0000011C 0600 LSL R0,R0,#0x18 ; Data
0000011E 0E00 LSR R0,R0,#0x18
00000120 280C CMP R0,#0xC
00000122 D105 BNE L_77 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -