?? syscalls.lst
字號:
ARM COMPILER V2.42, Syscalls 09/01/06 14:42:17 PAGE 1
ARM COMPILER V2.42, COMPILATION OF MODULE Syscalls
OBJECT MODULE PLACED IN Syscalls.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe Syscalls.c THUMB DEBUG TABS(4)
stmt level source
1 /***********************************************************************/
2 /* This file is part of the uVision/ARM development tools */
3 /* Copyright KEIL ELEKTRONIK GmbH 2002-2004 */
4 /***********************************************************************/
5 /* */
6 /* SYSCALLS.C: System Calls Remapping */
7 /* */
8 /***********************************************************************/
9
10 #include <stdlib.h>
11
12
13 extern int putchar (int ch);
14 extern int getchar (void);
15
16 int read (int file, char * ptr, int len) {
17 1 char c;
18 1 int i;
19 1
20 1 for (i = 0; i < len; i++) {
21 2 c = getchar();
22 2 if (c == 0x0D) break;
23 2 *ptr++ = c;
24 2 putchar(c);
25 2 }
26 1 return len - i;
27 1 }
*** WARNING C47 IN LINE 16 OF SYSCALLS.C: 'file': unreferenced parameter
28
29 int write (int file, char * ptr, int len) {
30 1 int i;
31 1
32 1 for (i = 0; i < len; i++) putchar (*ptr++);
33 1 return len;
34 1 }
*** WARNING C47 IN LINE 29 OF SYSCALLS.C: 'file': unreferenced parameter
35
36 int isatty (int fd) {
37 1 return 1;
38 1 }
*** WARNING C47 IN LINE 36 OF SYSCALLS.C: 'fd': unreferenced parameter
39
40
41 void _exit (int n) {
42 1 label: goto label; /* endless loop */
43 1 }
*** WARNING C47 IN LINE 41 OF SYSCALLS.C: 'n': unreferenced parameter
ARM COMPILER V2.42, Syscalls 09/01/06 14:42:17 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (putchar?T)
EXTERN CODE16 (getchar?T)
*** PUBLICS:
PUBLIC read?T
PUBLIC write?T
PUBLIC isatty?T
PUBLIC _exit?T
*** CODE SEGMENT '?PR?read?T?Syscalls':
16: int read (int file, char * ptr, int len) {
00000000 B5F0 PUSH {R4-R7,LR}
00000002 1C14 MOV R4,R2 ; len
00000004 ---- Variable 'len' assigned to Register 'R4' ----
00000004 1C0E MOV R6,R1 ; ptr
00000006 ---- Variable 'ptr' assigned to Register 'R6' ----
00000006 ; SCOPE-START
20: for (i = 0; i < len; i++) {
00000006 2500 MOV R5,#0x0
00000008 ---- Variable 'i' assigned to Register 'R5' ----
00000008 E012 B L_3 ; T=0x00000030
0000000A L_4:
21: c = getchar();
0000000A F7FF BL getchar?T ; T=0x0001 (1)
0000000C FFF9 BL getchar?T ; T=0x0001 (2)
0000000E 0607 LSL R7,R0,#0x18 ; getchar?T
00000010 0E3F LSR R7,R7,#0x18
00000012 ---- Variable 'c' assigned to Register 'R7' ----
22: if (c == 0x0D) break;
00000012 1C38 MOV R0,R7 ; c
00000014 0600 LSL R0,R0,#0x18 ; c
00000016 0E00 LSR R0,R0,#0x18
00000018 280D CMP R0,#0xD
0000001A D00D BEQ L_2 ; T=0x00000038
23: *ptr++ = c;
0000001C 1C3A MOV R2,R7 ; c
0000001E 1C30 MOV R0,R6 ; ptr
00000020 3601 ADD R6,#0x1
00000022 7002 STRB R2,[R0,#0x0] ; ptr
24: putchar(c);
00000024 1C38 MOV R0,R7 ; c
00000026 0600 LSL R0,R0,#0x18 ; c
00000028 0E00 LSR R0,R0,#0x18
0000002A F7FF BL putchar?T ; T=0x0001 (1)
0000002C FFE9 BL putchar?T ; T=0x0001 (2)
25: }
0000002E 3501 ADD R5,#0x1
00000030 L_3:
00000030 1C21 MOV R1,R4 ; len
00000032 1C28 MOV R0,R5 ; i
00000034 4288 CMP R0,R1 ; i
00000036 DBE8 BLT L_4 ; T=0x0000000A
00000038 L_2:
26: return len - i;
00000038 1C29 MOV R1,R5 ; i
0000003A 1C20 MOV R0,R4 ; len
0000003C 1A40 SUB R0,R1 ; len
0000003E ; SCOPE-END
27: }
0000003E BCF0 POP {R4-R7}
00000040 BC08 POP {R3}
00000042 4718 BX R3
ARM COMPILER V2.42, Syscalls 09/01/06 14:42:17 PAGE 3
00000044 ENDP ; 'read?T'
*** CODE SEGMENT '?PR?write?T?Syscalls':
29: int write (int file, char * ptr, int len) {
00000000 B570 PUSH {R4-R6,LR}
00000002 1C14 MOV R4,R2 ; len
00000004 ---- Variable 'len' assigned to Register 'R4' ----
00000004 1C0E MOV R6,R1 ; ptr
00000006 ---- Variable 'ptr' assigned to Register 'R6' ----
00000006 ; SCOPE-START
32: for (i = 0; i < len; i++) putchar (*ptr++);
00000006 2500 MOV R5,#0x0
00000008 ---- Variable 'i' assigned to Register 'R5' ----
00000008 E005 B L_10 ; T=0x00000016
0000000A L_11:
0000000A 1C30 MOV R0,R6 ; ptr
0000000C 3601 ADD R6,#0x1
0000000E 7800 LDRB R0,[R0,#0x0] ; ptr
00000010 F7FF BL putchar?T ; T=0x0001 (1)
00000012 FFF6 BL putchar?T ; T=0x0001 (2)
00000014 3501 ADD R5,#0x1
00000016 L_10:
00000016 1C21 MOV R1,R4 ; len
00000018 1C28 MOV R0,R5 ; i
0000001A 4288 CMP R0,R1 ; i
0000001C DBF5 BLT L_11 ; T=0x0000000A
33: return len;
0000001E 1C20 MOV R0,R4 ; len
00000020 ; SCOPE-END
34: }
00000020 BC70 POP {R4-R6}
00000022 BC08 POP {R3}
00000024 4718 BX R3
00000026 ENDP ; 'write?T'
*** CODE SEGMENT '?PR?isatty?T?Syscalls':
37: return 1;
00000000 2001 MOV R0,#0x1
38: }
00000002 4770 BX R14
00000004 ENDP ; 'isatty?T'
*** CODE SEGMENT '?PR?_exit?T?Syscalls':
42: label: goto label; /* endless loop */
00000000 label:
00000000 E7FD B label ; T=0xFFFFFFFE
43: }
00000002 4770 BX R14
00000004 ENDP ; '_exit?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -