📄 uart.lst
字号:
00000024 FFED BL SendHex?T ; T=0x0001 (2)
31: NewLine();
00000026 F7FF BL NewLine?T ; T=0x0001 (1)
00000028 FFEB BL NewLine?T ; T=0x0001 (2)
32: return tmp;
0000002A 1C20 MOV R0,R4 ; tmp
0000002C 0600 LSL R0,R0,#0x18 ; tmp
0000002E 0E00 LSR R0,R0,#0x18
00000030 ; SCOPE-END
33: }
00000030 BC10 POP {R4}
00000032 BC08 POP {R3}
00000034 4718 BX R3
00000036 ENDP ; 'GetData?T'
*** CODE SEGMENT '?PR?SendHex?T?uart':
39: void SendHex(int num)
00000000 B500 PUSH {LR}
00000002 1C03 MOV R3,R0 ; num
00000004 ---- Variable 'num' assigned to Register 'R3' ----
ARM COMPILER V2.42, uart 17/01/09 22:24:15 PAGE 5
41: SendByte('0');
00000004 2030 MOV R0,#0x30
00000006 F7FF BL SendByte?T ; T=0x0001 (1)
00000008 FFFB BL SendByte?T ; T=0x0001 (2)
42: SendByte('x');
0000000A 2078 MOV R0,#0x78
0000000C F7FF BL SendByte?T ; T=0x0001 (1)
0000000E FFF8 BL SendByte?T ; T=0x0001 (2)
43: SendByte(HexList[num/16]);
00000010 1C18 MOV R0,R3 ; num
00000012 2110 MOV R1,#0x10
00000014 F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000016 FFF4 BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
00000018 1C08 MOV R0,R1
0000001A 4800 LDR R1,=HexList ; HexList
0000001C 5C08 LDRB R0,[R1,R0]
0000001E F7FF BL SendByte?T ; T=0x0001 (1)
00000020 FFEF BL SendByte?T ; T=0x0001 (2)
44: SendByte(HexList[num%16]);
00000022 1C18 MOV R0,R3 ; num
00000024 2110 MOV R1,#0x10
00000026 F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000028 FFEB BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
0000002A 1C01 MOV R1,R0
0000002C 4800 LDR R0,=HexList ; HexList
0000002E 5C40 LDRB R0,[R0,R1]
00000030 F7FF BL SendByte?T ; T=0x0001 (1)
00000032 FFE6 BL SendByte?T ; T=0x0001 (2)
45: }
00000034 BC08 POP {R3}
00000036 4718 BX R3
00000038 ENDP ; 'SendHex?T'
*** CODE SEGMENT '?PR?SendNum?T?uart':
50: void SendNum(int num)
00000000 B500 PUSH {LR}
00000002 1C03 MOV R3,R0 ; num
00000004 ---- Variable 'num' assigned to Register 'R3' ----
52: if(num >= 10){
00000004 1C18 MOV R0,R3 ; num
00000006 280A CMP R0,#0xA ; num
00000008 DB3B BLT L_10 ; T=0x00000082
53: if(num >=100){
0000000A 1C18 MOV R0,R3 ; num
0000000C 2864 CMP R0,#0x64 ; num
0000000E DB30 BLT L_11 ; T=0x00000072
54: if(num >= 1000){
00000010 1C18 MOV R0,R3 ; num
00000012 49FA LDR R1,=0x3E8
00000014 4288 CMP R0,R1 ; num
00000016 DB1E BLT L_12 ; T=0x00000056
55: if(num>= 10000){
00000018 1C18 MOV R0,R3 ; num
0000001A 4800 LDR R1,=0x2710
0000001C 4288 CMP R0,R1 ; num
0000001E DB0C BLT L_13 ; T=0x0000003A
56: SendByte(num / 10000 + 0x30);
00000020 1C18 MOV R0,R3 ; num
00000022 F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000024 FFED BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
00000026 1C08 MOV R0,R1
00000028 3030 ADD R0,#0x30
0000002A F7FF BL SendByte?T ; T=0x0001 (1)
0000002C FFE9 BL SendByte?T ; T=0x0001 (2)
57: num = num % 10000;
0000002E 1C18 MOV R0,R3 ; num
00000030 4800 LDR R1,=0x2710
ARM COMPILER V2.42, uart 17/01/09 22:24:15 PAGE 6
00000032 F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000034 FFE5 BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
00000036 1C01 MOV R1,R0
00000038 1C0B MOV R3,R1 ; num
58: }
0000003A L_13:
59: SendByte(num / 1000 + 0x30);
0000003A 1C18 MOV R0,R3 ; num
0000003C 49FA LDR R1,=0x3E8
0000003E F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000040 FFDF BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
00000042 1C08 MOV R0,R1
00000044 3030 ADD R0,#0x30
00000046 F7FF BL SendByte?T ; T=0x0001 (1)
00000048 FFDB BL SendByte?T ; T=0x0001 (2)
60: num = num % 1000;
0000004A 1C18 MOV R0,R3 ; num
0000004C 49FA LDR R1,=0x3E8
0000004E F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000050 FFD7 BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
00000052 1C01 MOV R1,R0
00000054 1C0B MOV R3,R1 ; num
61: }
00000056 L_12:
62: SendByte(num / 100 + 0x30);
00000056 1C18 MOV R0,R3 ; num
00000058 2164 MOV R1,#0x64
0000005A F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
0000005C FFD1 BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
0000005E 1C08 MOV R0,R1
00000060 3030 ADD R0,#0x30
00000062 F7FF BL SendByte?T ; T=0x0001 (1)
00000064 FFCD BL SendByte?T ; T=0x0001 (2)
63: num = num % 100;
00000066 1C18 MOV R0,R3 ; num
00000068 2164 MOV R1,#0x64
0000006A F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
0000006C FFC9 BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
0000006E 1C01 MOV R1,R0
00000070 1C0B MOV R3,R1 ; num
64: }
00000072 L_11:
65: SendByte(num / 10 + 0x30);
00000072 1C18 MOV R0,R3 ; num
00000074 210A MOV R1,#0xA
00000076 F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000078 FFC3 BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
0000007A 1C08 MOV R0,R1
0000007C 3030 ADD R0,#0x30
0000007E F7FF BL SendByte?T ; T=0x0001 (1)
00000080 FFBF BL SendByte?T ; T=0x0001 (2)
66: }
00000082 L_10:
67: SendByte(num % 10 + 0x30);
00000082 1C18 MOV R0,R3 ; num
00000084 210A MOV R1,#0xA
00000086 F7FF BL ?C?SDIV?T ; T=0x0001 (1) ; ?C?SDIV?T
00000088 FFBB BL ?C?SDIV?T ; T=0x0001 (2) ; ?C?SDIV?T
0000008A 1C01 MOV R1,R0
0000008C 3030 ADD R0,#0x30
0000008E F7FF BL SendByte?T ; T=0x0001 (1)
00000090 FFB7 BL SendByte?T ; T=0x0001 (2)
68: }
00000092 BC08 POP {R3}
00000094 4718 BX R3
00000096 ENDP ; 'SendNum?T'
ARM COMPILER V2.42, uart 17/01/09 22:24:15 PAGE 7
*** CODE SEGMENT '?PR?PrintStr?T?uart':
72: void PrintStr(unsigned char *p)
00000000 B510 PUSH {R4,LR}
00000002 1C04 MOV R4,R0 ; p
00000004 ---- Variable 'p' assigned to Register 'R4' ----
73: {
00000004 ; SCOPE-START
74: int i = 0;
00000004 2300 MOV R3,#0x0
00000006 ---- Variable 'i' assigned to Register 'R3' ----
75: while( p[i] != 0){
00000006 E005 B L_14 ; T=0x00000014
00000008 L_16:
76: SendByte(p[i]);
00000008 1C19 MOV R1,R3 ; i
0000000A 1C20 MOV R0,R4 ; p
0000000C 5C40 LDRB R0,[R0,R1]
0000000E F7FF BL SendByte?T ; T=0x0001 (1)
00000010 FFF7 BL SendByte?T ; T=0x0001 (2)
77: i++;
00000012 3301 ADD R3,#0x1
78: }
00000014 L_14:
00000014 1C19 MOV R1,R3 ; i
00000016 1C20 MOV R0,R4 ; p
00000018 5C40 LDRB R0,[R0,R1]
0000001A 2800 CMP R0,#0x0
0000001C D1F4 BNE L_16 ; T=0x00000008
0000001E ; SCOPE-END
79: }
0000001E BC10 POP {R4}
00000020 BC08 POP {R3}
00000022 4718 BX R3
00000024 ENDP ; 'PrintStr?T'
*** CODE SEGMENT '?PR?NewLine?T?uart':
83: void NewLine()
00000000 B500 PUSH {LR}
85: SendByte(0x0D);
00000002 200D MOV R0,#0xD
00000004 F7FF BL SendByte?T ; T=0x0001 (1)
00000006 FFFC BL SendByte?T ; T=0x0001 (2)
86: SendByte(0x0A);
00000008 200A MOV R0,#0xA
0000000A F7FF BL SendByte?T ; T=0x0001 (1)
0000000C FFF9 BL SendByte?T ; T=0x0001 (2)
0000000E BC08 POP {R3}
00000010 4718 BX R3
00000012 ENDP ; 'NewLine?T'
Module Information Static
----------------------------------
code size = ------
data size = 16
const size = 31
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -