📄 serial.lst
字号:
ARM COMPILER V2.42, serial 09/01/06 14:42:17 PAGE 1
ARM COMPILER V2.42, COMPILATION OF MODULE serial
OBJECT MODULE PLACED IN serial.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe serial.c THUMB DEBUG TABS(4)
stmt level source
1 /***********************************************************************/
2 /* */
3 /* SERIAL.C: Low Level Serial Routines */
4 /* */
5 /***********************************************************************/
6
7 #include <aduc7024.H> /* ADuC7024 definitions */
8
9 #define CR 0x0D
10
11 int putchar(int ch) { /* Write character to Serial Port */
12 1
13 1 if (ch == '\n') {
14 2 while(!(0x020==(COMSTA0 & 0x020)))
15 2 {}
16 2 COMTX = CR; /* output CR */
17 2 }
18 1 while(!(0x020==(COMSTA0 & 0x020)))
19 1 {}
20 1
21 1 return (COMTX = ch);
22 1 }
23
24
25 int getchar (void) { /* Read character from Serial Port */
26 1
27 1 while(!(0x01==(COMSTA0 & 0x01)))
28 1 {}
29 1 return (COMRX);
30 1 }
ARM COMPILER V2.42, serial 09/01/06 14:42:17 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
PUBLIC putchar?T
PUBLIC getchar?T
*** CODE SEGMENT '?PR?putchar?T?serial':
11: int putchar(int ch) { /* Write character to Serial Port */
00000000 1C01 MOV R1,R0 ; ch
00000002 ---- Variable 'ch' assigned to Register 'R1' ----
13: if (ch == '\n') {
00000002 1C08 MOV R0,R1 ; ch
00000004 280A CMP R0,#0xA ; ch
00000006 D107 BNE L_9 ; T=0x00000018
15: {}
00000008 L_2:
00000008 4800 LDR R0,=0xFFFF0714
0000000A 6800 LDR R0,[R0,#0x0]
0000000C 2220 MOV R2,#0x20
0000000E 4210 TST R0,R2
00000010 D0FA BEQ L_2 ; T=0x00000008
16: COMTX = CR; /* output CR */
00000012 220D MOV R2,#0xD
00000014 4800 LDR R0,=0xFFFF0700
00000016 6002 STR R2,[R0,#0x0]
18: while(!(0x020==(COMSTA0 & 0x020)))
00000018 L_9:
19: {}
00000018 L_6:
00000018 4800 LDR R0,=0xFFFF0714
0000001A 6800 LDR R0,[R0,#0x0]
0000001C 2220 MOV R2,#0x20
0000001E 4210 TST R0,R2
00000020 D0FA BEQ L_6 ; T=0x00000018
21: return (COMTX = ch);
00000022 1C08 MOV R0,R1 ; ch
00000024 4800 LDR R1,=0xFFFF0700
00000026 6008 STR R0,[R1,#0x0]
22: }
00000028 4770 BX R14
0000002A ENDP ; 'putchar?T'
*** CODE SEGMENT '?PR?getchar?T?serial':
28: {}
00000000 L_11:
00000000 4800 LDR R0,=0xFFFF0714
00000002 6800 LDR R0,[R0,#0x0]
00000004 2101 MOV R1,#0x1
00000006 4008 AND R0,R1
00000008 2801 CMP R0,#0x1
0000000A D1F9 BNE L_11 ; T=0x00000000
29: return (COMRX);
0000000C 4800 LDR R0,=0xFFFF0700
0000000E 6800 LDR R0,[R0,#0x0]
30: }
00000010 4770 BX R14
00000012 ENDP ; 'getchar?T'
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 + -