📄 retarget.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 939] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\obj\retarget.o --depend=.\obj\retarget.d --device=DARMP --apcs=interwork -O0 -IC:\Keil305\ARM\INC\Philips --omf_browse=.\obj\retarget.crf Retarget.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
_ttywrch PROC
;;;48 #endif
;;;49 }
000000 e12fff1e BX lr
;;;50
ENDP
_sys_open PROC
;;;52
;;;53 FILEHANDLE _sys_open (const char *name, int openmode) {
000004 e92d4070 PUSH {r4-r6,lr}
000008 e1a04000 MOV r4,r0
00000c e1a05001 MOV r5,r1
;;;54 /* Register standard Input Output devices. */
;;;55 if (strcmp(name, "STDIN") == 0) {
000010 e28f1f71 ADR r1,|L1.476|
000014 e1a00004 MOV r0,r4
000018 ebfffffe BL strcmp
00001c e3500000 CMP r0,#0
000020 1a000002 BNE |L1.48|
;;;56 return (STDIN);
000024 e59f01b8 LDR r0,|L1.484|
|L1.40|
000028 e8bd4070 POP {r4-r6,lr}
;;;57 }
;;;58 if (strcmp(name, "STDOUT") == 0) {
;;;59 return (STDOUT);
;;;60 }
;;;61 if (strcmp(name, "STDERR") == 0) {
;;;62 return (STDERR);
;;;63 }
;;;64 return (__fopen (name, openmode));
;;;65 }
00002c e12fff1e BX lr
|L1.48|
000030 e28f1e1b ADR r1,|L1.488|
000034 e1a00004 MOV r0,r4 ;58
000038 ebfffffe BL strcmp
00003c e3500000 CMP r0,#0 ;58
000040 1a000001 BNE |L1.76|
000044 e59f01a4 LDR r0,|L1.496|
000048 eafffff6 B |L1.40|
|L1.76|
00004c e28f1e1a ADR r1,|L1.500|
000050 e1a00004 MOV r0,r4 ;61
000054 ebfffffe BL strcmp
000058 e3500000 CMP r0,#0 ;61
00005c 1a000001 BNE |L1.104|
000060 e59f0194 LDR r0,|L1.508|
000064 eaffffef B |L1.40|
|L1.104|
000068 e1a01005 MOV r1,r5 ;64
00006c e1a00004 MOV r0,r4 ;64
000070 ebfffffe BL __fopen
000074 eaffffeb B |L1.40|
;;;66
ENDP
_sys_close PROC
;;;68
;;;69 int _sys_close (FILEHANDLE fh) {
000078 e92d4010 PUSH {r4,lr}
00007c e1a04000 MOV r4,r0
;;;70 if (fh > 0x8000) {
000080 e3540902 CMP r4,#0x8000
000084 da000002 BLE |L1.148|
;;;71 return (0);
000088 e3a00000 MOV r0,#0
|L1.140|
00008c e8bd4010 POP {r4,lr}
;;;72 }
;;;73 return (__fclose (fh));
;;;74 }
000090 e12fff1e BX lr
|L1.148|
000094 e1a00004 MOV r0,r4 ;73
000098 ebfffffe BL __fclose
00009c eafffffa B |L1.140|
;;;75
ENDP
_sys_write PROC
;;;77
;;;78 int _sys_write (FILEHANDLE fh, const U8 *buf, U32 len, int mode) {
0000a0 e92d41f0 PUSH {r4-r8,lr}
0000a4 e1a04000 MOV r4,r0
0000a8 e1a05001 MOV r5,r1
0000ac e1a06002 MOV r6,r2
0000b0 e1a07003 MOV r7,r3
;;;79 #ifdef STDIO
;;;80 if (fh == STDOUT) {
;;;81 /* Standard Output device. */
;;;82 for ( ; len; len--) {
;;;83 sendchar (*buf++);
;;;84 }
;;;85 return (0);
;;;86 }
;;;87 #endif
;;;88 if (fh > 0x8000) {
0000b4 e3540902 CMP r4,#0x8000
0000b8 da000002 BLE |L1.200|
;;;89 return (-1);
0000bc e3e00000 MVN r0,#0
|L1.192|
0000c0 e8bd41f0 POP {r4-r8,lr}
;;;90 }
;;;91 return (__write (fh, buf, len));
;;;92 }
0000c4 e12fff1e BX lr
|L1.200|
0000c8 e1a02006 MOV r2,r6 ;91
0000cc e1a01005 MOV r1,r5 ;91
0000d0 e1a00004 MOV r0,r4 ;91
0000d4 ebfffffe BL __write
0000d8 eafffff8 B |L1.192|
;;;93
ENDP
_sys_read PROC
;;;95
;;;96 int _sys_read (FILEHANDLE fh, U8 *buf, U32 len, int mode) {
0000dc e92d41f0 PUSH {r4-r8,lr}
0000e0 e1a04000 MOV r4,r0
0000e4 e1a05001 MOV r5,r1
0000e8 e1a06002 MOV r6,r2
0000ec e1a07003 MOV r7,r3
;;;97 #ifdef STDIO
;;;98 if (fh == STDIN) {
;;;99 /* Standard Input device. */
;;;100 for ( ; len; len--) {
;;;101 *buf++ = getkey ();
;;;102 }
;;;103 return (0);
;;;104 }
;;;105 #endif
;;;106 if (fh > 0x8000) {
0000f0 e3540902 CMP r4,#0x8000
0000f4 da000002 BLE |L1.260|
;;;107 return (-1);
0000f8 e3e00000 MVN r0,#0
|L1.252|
0000fc e8bd41f0 POP {r4-r8,lr}
;;;108 }
;;;109 return (__read (fh, buf, len));
;;;110 }
000100 e12fff1e BX lr
|L1.260|
000104 e1a02006 MOV r2,r6 ;109
000108 e1a01005 MOV r1,r5 ;109
00010c e1a00004 MOV r0,r4 ;109
000110 ebfffffe BL __read
000114 eafffff8 B |L1.252|
;;;111
ENDP
_sys_istty PROC
;;;113
;;;114 int _sys_istty (FILEHANDLE fh) {
000118 e1a01000 MOV r1,r0
;;;115 if (fh > 0x8000) {
00011c e3510902 CMP r1,#0x8000
000120 da000001 BLE |L1.300|
;;;116 return (1);
000124 e3a00001 MOV r0,#1
|L1.296|
;;;117 }
;;;118 return (0);
;;;119 }
000128 e12fff1e BX lr
|L1.300|
00012c e3a00000 MOV r0,#0 ;118
000130 eafffffc B |L1.296|
;;;120
ENDP
_sys_seek PROC
;;;122
;;;123 int _sys_seek (FILEHANDLE fh, long pos) {
000134 e92d4070 PUSH {r4-r6,lr}
000138 e1a04000 MOV r4,r0
00013c e1a05001 MOV r5,r1
;;;124 if (fh > 0x8000) {
000140 e3540902 CMP r4,#0x8000
000144 da000002 BLE |L1.340|
;;;125 return (-1);
000148 e3e00000 MVN r0,#0
|L1.332|
00014c e8bd4070 POP {r4-r6,lr}
;;;126 }
;;;127 return (__setfpos (fh, pos));
;;;128 }
000150 e12fff1e BX lr
|L1.340|
000154 e1a01005 MOV r1,r5 ;127
000158 e1a00004 MOV r0,r4 ;127
00015c ebfffffe BL __setfpos
000160 eafffff9 B |L1.332|
;;;129
ENDP
_sys_ensure PROC
;;;131
;;;132 int _sys_ensure (FILEHANDLE fh) {
000164 e92d4010 PUSH {r4,lr}
000168 e1a04000 MOV r4,r0
;;;133 if (fh > 0x8000) {
00016c e3540902 CMP r4,#0x8000
000170 da000002 BLE |L1.384|
;;;134 return (-1);
000174 e3e00000 MVN r0,#0
|L1.376|
000178 e8bd4010 POP {r4,lr}
;;;135 }
;;;136 return (__flushbuf (fh));
;;;137 }
00017c e12fff1e BX lr
|L1.384|
000180 e1a00004 MOV r0,r4 ;136
000184 ebfffffe BL __flushbuf
000188 eafffffa B |L1.376|
;;;138
ENDP
_sys_flen PROC
;;;140
;;;141 long _sys_flen (FILEHANDLE fh) {
00018c e92d4010 PUSH {r4,lr}
000190 e1a04000 MOV r4,r0
;;;142 if (fh > 0x8000) {
000194 e3540902 CMP r4,#0x8000
000198 da000002 BLE |L1.424|
;;;143 return (0);
00019c e3a00000 MOV r0,#0
|L1.416|
0001a0 e8bd4010 POP {r4,lr}
;;;144 }
;;;145 return (__get_flen (fh));
;;;146 }
0001a4 e12fff1e BX lr
|L1.424|
0001a8 e3a0100d MOV r1,#0xd ;145
0001ac e0010194 MUL r1,r4,r1 ;145
0001b0 e59f2048 LDR r2,|L1.512|
0001b4 e0820101 ADD r0,r2,r1,LSL #2 ;145
0001b8 e3a01000 MOV r1,#0 ;145
0001bc ebfffffe BL __getfsize
0001c0 eafffff6 B |L1.416|
;;;147
ENDP
_sys_tmpnam PROC
;;;149
;;;150 int _sys_tmpnam (char *name, int sig, unsigned maxlen) {
0001c4 e1a03000 MOV r3,r0
;;;151 return (1);
0001c8 e3a00001 MOV r0,#1
;;;152 }
0001cc e12fff1e BX lr
;;;153
ENDP
_sys_command_string PROC
;;;157 return (cmd);
;;;158 }
0001d0 e12fff1e BX lr
;;;159
ENDP
_sys_exit PROC
;;;163 /* Endless loop. */
;;;164 while (1);
0001d4 e1a00000 MOV r0,r0
|L1.472|
0001d8 eafffffe B |L1.472|
;;;165 }
;;;166
ENDP
|L1.476|
0001dc 53544449 DCB "STDI"
0001e0 4e000000 DCB "N\0\0\0"
|L1.484|
0001e4 00008001 DCD 0x00008001
|L1.488|
0001e8 5354444f DCB "STDO"
0001ec 55540000 DCB "UT\0\0"
|L1.496|
0001f0 00008002 DCD 0x00008002
|L1.500|
0001f4 53544445 DCB "STDE"
0001f8 52520000 DCB "RR\0\0"
|L1.508|
0001fc 00008003 DCD 0x00008003
|L1.512|
000200 00000000 DCD _iob
AREA ||.constdata||, DATA, READONLY, ALIGN=0
__stdin_name
000000 53544449 DCB 0x53,0x54,0x44,0x49
000004 4e00 DCB 0x4e,0x00
__stdout_name
000006 5354444f DCB 0x53,0x54,0x44,0x4f
00000a 555400 DCB 0x55,0x54,0x00
__stderr_name
00000d 53544445 DCB 0x53,0x54,0x44,0x45
000011 525200 DCB 0x52,0x52,0x00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -