📄 main.lst
字号:
ARM COMPILER V2.54a, main 19/08/06 17:44:59 PAGE 1
ARM COMPILER V2.54a, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe main.c ARM OPTIMIZE(2,SPEED) BROWSE DEBUG TABS(4)
stmt level source
1 #include "at91sam7a3.h"
2
3 extern void power_on_initialization();
4 extern void Initial_USART();
5
6 unsigned char ASCiitoHEX(unsigned char);
7 unsigned char HEXtoASCii(unsigned char);
8
9
10 //***************************************************************************
11 //* 名称:main() *
12 //* 功能:This edition add psk InData function. *
13 //***************************************************************************
14 int main(void)
15 {
16 1 power_on_initialization();
17 1 return(0);
18 1 }
19
20 unsigned char ASCiitoHEX(unsigned char str1)
21 {
22 1 if ((str1>=0x30)&&(str1<=0x39))
23 1 {
24 2 return(str1-0x30);
25 2 }
26 1 if ((str1>=0x41)&&(str1<=0x46))
27 1 {
28 2 return(str1-0x37);
29 2 }
30 1
31 1 return 1;
32 1 }
33
34
35 unsigned char HEXtoASCii(unsigned char str1)
36 {
37 1 if (str1<=0x09) //if ((str1>=0x00)&&(str1<=0x09))
38 1 {
39 2 return(str1+0x30);
40 2 }
41 1 if ((str1>=0x0A)&&(str1<=0x0F))
42 1 {
43 2 return(str1+0x37);
44 2 }
45 1
46 1 return 1;
47 1 }
ARM COMPILER V2.54a, main 19/08/06 17:44:59 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE32 (power_on_initialization?A)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC ASCiitoHEX?A
PUBLIC HEXtoASCii?A
PUBLIC main
*** CODE SEGMENT '?PR?main?main':
14: int main(void)
00000000 E92D4000 STMDB R13!,{LR}
16: power_on_initialization();
00000004 EBFFFFFD BL power_on_initialization?A ; Targ=0x0
17: return(0);
00000008 E3A00000 MOV R0,#0x0
18: }
0000000C E8BD0008 LDMIA R13!,{R3}
00000010 E12FFF13 BX R3
00000014 ENDP ; 'main'
*** CODE SEGMENT '?PR?ASCiitoHEX?A?main':
20: unsigned char ASCiitoHEX(unsigned char str1)
00000000 E1A01000 MOV R1,R0 ; str1
00000004 ---- Variable 'str1' assigned to Register 'R1' ----
22: if ((str1>=0x30)&&(str1<=0x39))
00000004 E1A00001 MOV R0,R1 ; str1
00000008 E1A00C00 MOV R0,R0,LSL #24 ; str1
0000000C E1A00C20 MOV R0,R0,LSR #24
00000010 E3500030 CMP R0,#0x0030
00000014 BA000009 BLT L_2 ; Targ=0x40
00000018 E1A00001 MOV R0,R1 ; str1
0000001C E1A00C00 MOV R0,R0,LSL #24 ; str1
00000020 E1A00C20 MOV R0,R0,LSR #24
00000024 E3500039 CMP R0,#0x0039
00000028 CA000004 BGT L_2 ; Targ=0x40
24: return(str1-0x30);
0000002C E1A00001 MOV R0,R1 ; str1
00000030 E1A00C00 MOV R0,R0,LSL #24 ; str1
00000034 E1A00C20 MOV R0,R0,LSR #24
00000038 E2400030 SUB R0,R0,#0x0030
0000003C EA00000F B L_3 ; Targ=0x80
25: }
00000040 L_2:
26: if ((str1>=0x41)&&(str1<=0x46))
00000040 E1A00001 MOV R0,R1 ; str1
00000044 E1A00C00 MOV R0,R0,LSL #24 ; str1
00000048 E1A00C20 MOV R0,R0,LSR #24
0000004C E3500041 CMP R0,#0x0041
00000050 BA000009 BLT L_4 ; Targ=0x7C
00000054 E1A00001 MOV R0,R1 ; str1
00000058 E1A00C00 MOV R0,R0,LSL #24 ; str1
0000005C E1A00C20 MOV R0,R0,LSR #24
00000060 E3500046 CMP R0,#0x0046
00000064 CA000004 BGT L_4 ; Targ=0x7C
28: return(str1-0x37);
00000068 E1A00001 MOV R0,R1 ; str1
0000006C E1A00C00 MOV R0,R0,LSL #24 ; str1
00000070 E1A00C20 MOV R0,R0,LSR #24
00000074 E2400037 SUB R0,R0,#0x0037
00000078 EA000000 B L_3 ; Targ=0x80
29: }
0000007C L_4:
31: return 1;
ARM COMPILER V2.54a, main 19/08/06 17:44:59 PAGE 3
0000007C E3A00001 MOV R0,#0x1
32: }
00000080 L_3:
00000080 E12FFF1E BX R14
00000084 ENDP ; 'ASCiitoHEX?A'
*** CODE SEGMENT '?PR?HEXtoASCii?A?main':
35: unsigned char HEXtoASCii(unsigned char str1)
00000000 E1A01000 MOV R1,R0 ; str1
00000004 ---- Variable 'str1' assigned to Register 'R1' ----
37: if (str1<=0x09) //if ((str1>=0x00)&&(str1<=0x09))
00000004 E1A00001 MOV R0,R1 ; str1
00000008 E1A00C00 MOV R0,R0,LSL #24 ; str1
0000000C E1A00C20 MOV R0,R0,LSR #24
00000010 E3500009 CMP R0,#0x0009
00000014 CA000004 BGT L_5 ; Targ=0x2C
39: return(str1+0x30);
00000018 E1A00001 MOV R0,R1 ; str1
0000001C E1A00C00 MOV R0,R0,LSL #24 ; str1
00000020 E1A00C20 MOV R0,R0,LSR #24
00000024 E2800030 ADD R0,R0,#0x0030
00000028 EA00000F B L_6 ; Targ=0x6C
40: }
0000002C L_5:
41: if ((str1>=0x0A)&&(str1<=0x0F))
0000002C E1A00001 MOV R0,R1 ; str1
00000030 E1A00C00 MOV R0,R0,LSL #24 ; str1
00000034 E1A00C20 MOV R0,R0,LSR #24
00000038 E350000A CMP R0,#0x000A
0000003C BA000009 BLT L_7 ; Targ=0x68
00000040 E1A00001 MOV R0,R1 ; str1
00000044 E1A00C00 MOV R0,R0,LSL #24 ; str1
00000048 E1A00C20 MOV R0,R0,LSR #24
0000004C E350000F CMP R0,#0x000F
00000050 CA000004 BGT L_7 ; Targ=0x68
43: return(str1+0x37);
00000054 E1A00001 MOV R0,R1 ; str1
00000058 E1A00C00 MOV R0,R0,LSL #24 ; str1
0000005C E1A00C20 MOV R0,R0,LSR #24
00000060 E2800037 ADD R0,R0,#0x0037
00000064 EA000000 B L_6 ; Targ=0x6C
44: }
00000068 L_7:
46: return 1;
00000068 E3A00001 MOV R0,#0x1
0000006C L_6:
0000006C E12FFF1E BX R14
00000070 ENDP ; 'HEXtoASCii?A'
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 + -