📄 inioper.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 939] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\obj\inioper.o --depend=.\obj\inioper.d --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips --omf_browse=.\obj\inioper.crf inioper.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
testfun PROC
;;;43 // char *tmp = NULL;
;;;44 len = strlen("plugin.ini");
000000 e3a0000a MOV r0,#0xa
;;;45 //tmp = (char*)malloc(len);
;;;46
;;;47 /*if((fp = fopen(tmp, "r")) == NULL)
;;;48 {
;;;49 printf("%s",tmp);
;;;50 }*/
;;;51 }
000004 e12fff1e BX lr
;;;52 /**********************************************************************
ENDP
strtrimr PROC
;;;67 char * strtrimr(char * buf)
;;;68 {
000008 e92d4070 PUSH {r4-r6,lr}
00000c e24dd068 SUB sp,sp,#0x68
000010 e1a06000 MOV r6,r0
;;;69 int len,i;
;;;70 char tmp[MAX_CFG_BUF];
;;;71 len = strlen(buf);
000014 e1a00006 MOV r0,r6
000018 ebfffffe BL strlen
00001c e1a04000 MOV r4,r0
;;;72
;;;73 for(i = 0;i < len;i++)
000020 e3a05000 MOV r5,#0
000024 ea000004 B |L1.60|
|L1.40|
;;;74 {
;;;75 if (buf[i] !=' ')
000028 e7d60005 LDRB r0,[r6,r5]
00002c e3500020 CMP r0,#0x20
000030 0a000000 BEQ |L1.56|
;;;76 break;
000034 ea000002 B |L1.68|
|L1.56|
000038 e2855001 ADD r5,r5,#1 ;73
|L1.60|
00003c e1550004 CMP r5,r4 ;73
000040 bafffff8 BLT |L1.40|
|L1.68|
000044 e1a00000 MOV r0,r0
;;;77 }
;;;78 if (i < len) {
000048 e1550004 CMP r5,r4
00004c aa000003 BGE |L1.96|
;;;79 strncpy(tmp,(buf+i),(len-i));
000050 e0442005 SUB r2,r4,r5
000054 e0861005 ADD r1,r6,r5
000058 e28d0004 ADD r0,sp,#4
00005c ebfffffe BL strncpy
|L1.96|
;;;80 }
;;;81 strncpy(buf,tmp,len);
000060 e1a02004 MOV r2,r4
000064 e28d1004 ADD r1,sp,#4
000068 e1a00006 MOV r0,r6
00006c ebfffffe BL strncpy
;;;82
;;;83 return buf;
000070 e1a00006 MOV r0,r6
000074 e28dd068 ADD sp,sp,#0x68
000078 e8bd4070 POP {r4-r6,lr}
;;;84 }
00007c e12fff1e BX lr
;;;85 /**********************************************************************
ENDP
strtriml PROC
;;;98 char * strtriml(char * buf)
;;;99 {
000080 e92d4070 PUSH {r4-r6,lr}
000084 e24dd068 SUB sp,sp,#0x68
000088 e1a04000 MOV r4,r0
;;;100 int len,i;
;;;101 char tmp[MAX_CFG_BUF];
;;;102 len = strlen(buf);
00008c e1a00004 MOV r0,r4
000090 ebfffffe BL strlen
000094 e1a05000 MOV r5,r0
;;;103
;;;104 for(i = 0;i < len;i++)
000098 e3a06000 MOV r6,#0
00009c ea000006 B |L1.188|
|L1.160|
;;;105 {
;;;106 if (buf[len-i-1] !=' ')
0000a0 e0450006 SUB r0,r5,r6
0000a4 e2400001 SUB r0,r0,#1
0000a8 e7d40000 LDRB r0,[r4,r0]
0000ac e3500020 CMP r0,#0x20
0000b0 0a000000 BEQ |L1.184|
;;;107 break;
0000b4 ea000002 B |L1.196|
|L1.184|
0000b8 e2866001 ADD r6,r6,#1 ;104
|L1.188|
0000bc e1560005 CMP r6,r5 ;104
0000c0 bafffff6 BLT |L1.160|
|L1.196|
0000c4 e1a00000 MOV r0,r0
;;;108 }
;;;109 if (i < len) {
0000c8 e1560005 CMP r6,r5
0000cc aa000003 BGE |L1.224|
;;;110 strncpy(tmp,buf,len-i);
0000d0 e0452006 SUB r2,r5,r6
0000d4 e1a01004 MOV r1,r4
0000d8 e28d0004 ADD r0,sp,#4
0000dc ebfffffe BL strncpy
|L1.224|
;;;111 }
;;;112 strncpy(buf,tmp,len);
0000e0 e1a02005 MOV r2,r5
0000e4 e28d1004 ADD r1,sp,#4
0000e8 e1a00004 MOV r0,r4
0000ec ebfffffe BL strncpy
;;;113
;;;114 return buf;
0000f0 e1a00004 MOV r0,r4
0000f4 e28dd068 ADD sp,sp,#0x68
0000f8 e8bd4070 POP {r4-r6,lr}
;;;115 }
0000fc e12fff1e BX lr
;;;116 /**********************************************************************
ENDP
FileGetLine PROC
;;;129 int FileGetLine(unsigned int fhandle, long curpos, char *buffer, int maxlen)
;;;130 {
000100 e92d43f8 PUSH {r3-r9,lr}
000104 e1a09000 MOV r9,r0
000108 e1a04001 MOV r4,r1
00010c e1a05002 MOV r5,r2
000110 e1a07003 MOV r7,r3
;;;131 int i, j;
;;;132 char ch1;
;;;133
;;;134 for(i = 0, j = 0; i < maxlen; j++)
000114 e3a06000 MOV r6,#0
000118 e3a08000 MOV r8,#0
00011c ea00002a B |L1.460|
|L1.288|
;;;135 {
;;;136 if(curpos == cfgfilelen)
000120 e59f0b7c LDR r0,|L1.3236|
000124 e5900000 LDR r0,[r0,#0] ; cfgfilelen
000128 e1540000 CMP r4,r0
00012c 1a000002 BNE |L1.316|
;;;137 {
;;;138 return -1;
000130 e3e00000 MVN r0,#0
|L1.308|
000134 e8bd43f8 POP {r3-r9,lr}
;;;139 }
;;;140 else
;;;141 {
;;;142 __setfpos(cfghandle, curpos);
;;;143 __read(cfghandle, &ch1, 1);
;;;144 if(ch1 == '\n' || ch1 == 0x00) break; /* 换行 */
;;;145 if(ch1 == '\f' || ch1 == 0x1A) /* '\f':换页符也算有效字符 */
;;;146 {
;;;147 buffer[i++] = ch1;
;;;148 break;
;;;149 }
;;;150 if(ch1 != '\r') buffer[i++] = ch1; /* 忽略回车符 */
;;;151 }
;;;152 curpos++;
;;;153 }
;;;154 buffer[i] = '\0';
;;;155 return i;
;;;156 }
000138 e12fff1e BX lr
|L1.316|
00013c e1a01004 MOV r1,r4 ;142
000140 e59f0b60 LDR r0,|L1.3240|
000144 e5900000 LDR r0,[r0,#0] ;142 ; cfghandle
000148 ebfffffe BL __setfpos
00014c e3a02001 MOV r2,#1 ;143
000150 e28d1000 ADD r1,sp,#0 ;143
000154 e59f0b4c LDR r0,|L1.3240|
000158 e5900000 LDR r0,[r0,#0] ;143 ; cfghandle
00015c ebfffffe BL __read
000160 e5dd0000 LDRB r0,[sp,#0] ;144
000164 e350000a CMP r0,#0xa ;144
000168 0a000002 BEQ |L1.376|
00016c e5dd0000 LDRB r0,[sp,#0] ;144
000170 e3500000 CMP r0,#0 ;144
000174 1a000000 BNE |L1.380|
|L1.376|
000178 ea000015 B |L1.468|
|L1.380|
00017c e5dd0000 LDRB r0,[sp,#0] ;145
000180 e350000c CMP r0,#0xc ;145
000184 0a000002 BEQ |L1.404|
000188 e5dd0000 LDRB r0,[sp,#0] ;145
00018c e350001a CMP r0,#0x1a ;145
000190 1a000004 BNE |L1.424|
|L1.404|
000194 e5dd1000 LDRB r1,[sp,#0] ;147
000198 e1a00006 MOV r0,r6 ;147
00019c e2866001 ADD r6,r6,#1 ;147
0001a0 e7c51000 STRB r1,[r5,r0] ;147
0001a4 ea00000a B |L1.468|
|L1.424|
0001a8 e5dd0000 LDRB r0,[sp,#0] ;150
0001ac e350000d CMP r0,#0xd ;150
0001b0 0a000003 BEQ |L1.452|
0001b4 e5dd1000 LDRB r1,[sp,#0] ;150
0001b8 e1a00006 MOV r0,r6 ;150
0001bc e2866001 ADD r6,r6,#1 ;150
0001c0 e7c51000 STRB r1,[r5,r0] ;150
|L1.452|
0001c4 e2844001 ADD r4,r4,#1 ;152
0001c8 e2888001 ADD r8,r8,#1 ;134
|L1.460|
0001cc e1560007 CMP r6,r7 ;134
0001d0 baffffd2 BLT |L1.288|
|L1.468|
0001d4 e1a00000 MOV r0,r0 ;144
0001d8 e3a00000 MOV r0,#0 ;154
0001dc e7c50006 STRB r0,[r5,r6] ;154
0001e0 e1a00006 MOV r0,r6 ;155
0001e4 eaffffd2 B |L1.308|
;;;157
ENDP
SplitKeyValue PROC
;;;178 int SplitKeyValue(char *buf, char **key, char **val)
;;;179 {
0001e8 e92d47f0 PUSH {r4-r10,lr}
0001ec e1a04000 MOV r4,r0
0001f0 e1a05001 MOV r5,r1
0001f4 e1a06002 MOV r6,r2
;;;180 int i, k1, k2, n;
;;;181
;;;182 if((n = strlen((char *)buf)) < 1) return 0;
0001f8 e1a00004 MOV r0,r4
0001fc ebfffffe BL strlen
000200 e1a0a000 MOV r10,r0
000204 e3500001 CMP r0,#1
000208 aa000002 BGE |L1.536|
00020c e3a00000 MOV r0,#0
|L1.528|
000210 e8bd47f0 POP {r4-r10,lr}
;;;183 for(i = 0; i < n; i++)
;;;184 if(buf[i] != ' ' && buf[i] != '\t') break;
;;;185 if(i >= n) return 0;
;;;186 if(buf[i] == '=') return -1;
;;;187 k1 = i;
;;;188 for(i++; i < n; i++)
;;;189 if(buf[i] == '=') break;
;;;190 if(i >= n) return -2;
;;;191 k2 = i;
;;;192 for(i++; i < n; i++)
;;;193 if(buf[i] != ' ' && buf[i] != '\t') break;
;;;194 buf[k2] = '\0';
;;;195 *key = buf + k1;
;;;196 *val = buf + i;
;;;197 return 1;
;;;198 }
000214 e12fff1e BX lr
|L1.536|
000218 e3a07000 MOV r7,#0 ;183
00021c ea000007 B |L1.576|
|L1.544|
000220 e7d40007 LDRB r0,[r4,r7] ;184
000224 e3500020 CMP r0,#0x20 ;184
000228 0a000003 BEQ |L1.572|
00022c e7d40007 LDRB r0,[r4,r7] ;184
000230 e3500009 CMP r0,#9 ;184
000234 0a000000 BEQ |L1.572|
000238 ea000002 B |L1.584|
|L1.572|
00023c e2877001 ADD r7,r7,#1 ;183
|L1.576|
000240 e157000a CMP r7,r10 ;183
000244 bafffff5 BLT |L1.544|
|L1.584|
000248 e1a00000 MOV r0,r0 ;184
00024c e157000a CMP r7,r10 ;185
000250 ba000001 BLT |L1.604|
000254 e3a00000 MOV r0,#0 ;185
000258 eaffffec B |L1.528|
|L1.604|
00025c e7d40007 LDRB r0,[r4,r7] ;186
000260 e350003d CMP r0,#0x3d ;186
000264 1a000001 BNE |L1.624|
000268 e3e00000 MVN r0,#0 ;186
00026c eaffffe7 B |L1.528|
|L1.624|
000270 e1a08007 MOV r8,r7 ;187
000274 e2877001 ADD r7,r7,#1 ;188
000278 ea000004 B |L1.656|
|L1.636|
00027c e7d40007 LDRB r0,[r4,r7] ;189
000280 e350003d CMP r0,#0x3d ;189
000284 1a000000 BNE |L1.652|
000288 ea000002 B |L1.664|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -