⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syscalls.lst

📁 ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核
💻 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 + -