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

📄 inioper.txt

📁 工厂环境污染控制数据采集器
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                  |L1.652|
00028c  e2877001          ADD      r7,r7,#1              ;188
                  |L1.656|
000290  e157000a          CMP      r7,r10                ;188
000294  bafffff8          BLT      |L1.636|
                  |L1.664|
000298  e1a00000          MOV      r0,r0                 ;189
00029c  e157000a          CMP      r7,r10                ;190
0002a0  ba000001          BLT      |L1.684|
0002a4  e3e00001          MVN      r0,#1                 ;190
0002a8  eaffffd8          B        |L1.528|
                  |L1.684|
0002ac  e1a09007          MOV      r9,r7                 ;191
0002b0  e2877001          ADD      r7,r7,#1              ;192
0002b4  ea000007          B        |L1.728|
                  |L1.696|
0002b8  e7d40007          LDRB     r0,[r4,r7]            ;193
0002bc  e3500020          CMP      r0,#0x20              ;193
0002c0  0a000003          BEQ      |L1.724|
0002c4  e7d40007          LDRB     r0,[r4,r7]            ;193
0002c8  e3500009          CMP      r0,#9                 ;193
0002cc  0a000000          BEQ      |L1.724|
0002d0  ea000002          B        |L1.736|
                  |L1.724|
0002d4  e2877001          ADD      r7,r7,#1              ;192
                  |L1.728|
0002d8  e157000a          CMP      r7,r10                ;192
0002dc  bafffff5          BLT      |L1.696|
                  |L1.736|
0002e0  e1a00000          MOV      r0,r0                 ;193
0002e4  e3a00000          MOV      r0,#0                 ;194
0002e8  e7c40009          STRB     r0,[r4,r9]            ;194
0002ec  e0840008          ADD      r0,r4,r8              ;195
0002f0  e5850000          STR      r0,[r5,#0]            ;195
0002f4  e0840007          ADD      r0,r4,r7              ;196
0002f8  e5860000          STR      r0,[r6,#0]            ;196
0002fc  e3a00001          MOV      r0,#1                 ;197
000300  eaffffc2          B        |L1.528|
;;;199    
                          ENDP

                  getcsvlen PROC
;;;200    unsigned int getcsvlen(unsigned char *buf)
;;;201    {
000304  e1a01000          MOV      r1,r0
;;;202    	unsigned int i;
;;;203    
;;;204    	for (i = 0; i < MAX_CFG_BUF; i++)
000308  e3a00000          MOV      r0,#0
00030c  e1a02000          MOV      r2,r0
000310  ea000006          B        |L1.816|
                  |L1.788|
;;;205    	{
;;;206    		if (buf[i] == ';')
000314  e7d10002          LDRB     r0,[r1,r2]
000318  e350003b          CMP      r0,#0x3b
00031c  1a000001          BNE      |L1.808|
;;;207    			return i + 1;
000320  e2820001          ADD      r0,r2,#1
                  |L1.804|
;;;208    	}
;;;209    }
000324  e12fff1e          BX       lr
                  |L1.808|
000328  e2820001          ADD      r0,r2,#1              ;204
00032c  e1a02000          MOV      r2,r0                 ;204
                  |L1.816|
000330  e3520064          CMP      r2,#0x64              ;204
000334  3afffff6          BCC      |L1.788|
000338  eafffff9          B        |L1.804|
;;;210    
                          ENDP

                  getcsvlendot PROC
;;;211    unsigned int getcsvlendot(unsigned char *buf)
;;;212    {
00033c  e1a01000          MOV      r1,r0
;;;213    	unsigned int i;
;;;214    
;;;215    	for (i = 0; i < MAX_CFG_BUF; i++)
000340  e3a00000          MOV      r0,#0
000344  e1a02000          MOV      r2,r0
000348  ea000006          B        |L1.872|
                  |L1.844|
;;;216    	{
;;;217    		if (buf[i] == ',')
00034c  e7d10002          LDRB     r0,[r1,r2]
000350  e350002c          CMP      r0,#0x2c
000354  1a000001          BNE      |L1.864|
;;;218    			return i + 1;
000358  e2820001          ADD      r0,r2,#1
                  |L1.860|
;;;219    	}
;;;220    }
00035c  e12fff1e          BX       lr
                  |L1.864|
000360  e2820001          ADD      r0,r2,#1              ;215
000364  e1a02000          MOV      r2,r0                 ;215
                  |L1.872|
000368  e3520064          CMP      r2,#0x64              ;215
00036c  3afffff6          BCC      |L1.844|
000370  eafffff9          B        |L1.860|
;;;221    /**********************************************************************
                          ENDP

                  ConfigGetKey PROC
;;;235    int  ConfigGetKey(unsigned fhandle, void *section, void *key, void *buf)
;;;236    { 
000374  e92d4ff0          PUSH     {r4-r11,lr}
000378  e24dd0e4          SUB      sp,sp,#0xe4
00037c  e1a04000          MOV      r4,r0
000380  e1a05001          MOV      r5,r1
000384  e1a06002          MOV      r6,r2
000388  e1a07003          MOV      r7,r3
;;;237     char buf1[MAX_CFG_BUF + 1], buf2[MAX_CFG_BUF + 1]; 
;;;238     char *key_ptr, *val_ptr; 
;;;239     int  line_no, n, ret; 
;;;240     int curpos = 0; //当前位置
00038c  e3a0a000          MOV      r10,#0
;;;241     
;;;242     line_no = 0; 
000390  e3a08000          MOV      r8,#0
;;;243     CFG_section_line_no = 0; 
000394  e3a00000          MOV      r0,#0
000398  e59f190c          LDR      r1,|L1.3244|
00039c  e5810000          STR      r0,[r1,#0]  ; CFG_section_line_no
;;;244     CFG_key_line_no = 0; 
0003a0  e59f1908          LDR      r1,|L1.3248|
0003a4  e5810000          STR      r0,[r1,#0]  ; CFG_key_line_no
;;;245     CFG_key_lines = 0; 
0003a8  e59f1904          LDR      r1,|L1.3252|
0003ac  e5810000          STR      r0,[r1,#0]  ; CFG_key_lines
;;;246     
;;;247     while(1)                                       /* 搜找项section */ 
0003b0  ea000042          B        |L1.1216|
                  |L1.948|
;;;248     { 
;;;249      ret = CFG_ERR_READ_FILE; 
0003b4  e3e0000b          MVN      r0,#0xb
0003b8  e58d0008          STR      r0,[sp,#8]
;;;250      n = FileGetLine(fhandle, curpos, buf1, MAX_CFG_BUF);
0003bc  e3a03064          MOV      r3,#0x64
0003c0  e28d207c          ADD      r2,sp,#0x7c
0003c4  e1a0100a          MOV      r1,r10
0003c8  e1a00004          MOV      r0,r4
0003cc  ebfffffe          BL       FileGetLine
0003d0  e1a09000          MOV      r9,r0
;;;251      curpos += n + 2; 
0003d4  e2890002          ADD      r0,r9,#2
0003d8  e08aa000          ADD      r10,r10,r0
;;;252      if(n < -1) goto r_cfg_end; 
0003dc  e3790001          CMN      r9,#1
0003e0  aa000000          BGE      |L1.1000|
0003e4  ea0000d5          B        |L1.1856|
                  |L1.1000|
;;;253      ret = CFG_SECTION_NOT_FOUND; 
0003e8  e3e00000          MVN      r0,#0
0003ec  e58d0008          STR      r0,[sp,#8]
;;;254      if(n < 0) goto r_cfg_end;                    /* 文件尾,未发现 */ 
0003f0  e3590000          CMP      r9,#0
0003f4  aa000000          BGE      |L1.1020|
0003f8  ea0000d0          B        |L1.1856|
                  |L1.1020|
;;;255      line_no++; 
0003fc  e2888001          ADD      r8,r8,#1
;;;256      n = strlen(strtriml(strtrimr(buf1))); 
000400  e28d007c          ADD      r0,sp,#0x7c
000404  ebfffffe          BL       strtrimr
000408  e58d0004          STR      r0,[sp,#4]
00040c  ebfffffe          BL       strtriml
000410  e1a0b000          MOV      r11,r0
000414  ebfffffe          BL       strlen
000418  e1a09000          MOV      r9,r0
;;;257      if(n == 0 || buf1[0] == CFG_nts) continue;       /* 空行 或 注释行 */ 
00041c  e3590000          CMP      r9,#0
000420  0a000004          BEQ      |L1.1080|
000424  e5dd007c          LDRB     r0,[sp,#0x7c]
000428  e59f1888          LDR      r1,|L1.3256|
00042c  e5d11000          LDRB     r1,[r1,#0]  ; CFG_nts
000430  e1500001          CMP      r0,r1
000434  1a000000          BNE      |L1.1084|
                  |L1.1080|
000438  ea000020          B        |L1.1216|
                  |L1.1084|
;;;258      ret = CFG_ERR_FILE_FORMAT; 
00043c  e3e0000d          MVN      r0,#0xd
000440  e58d0008          STR      r0,[sp,#8]
;;;259      if(n > 2 && ((buf1[0] == CFG_ssl && buf1[n-1] != CFG_ssr))) 
000444  e3590002          CMP      r9,#2
000448  da00000c          BLE      |L1.1152|
00044c  e5dd007c          LDRB     r0,[sp,#0x7c]
000450  e59f1864          LDR      r1,|L1.3260|
000454  e5d11000          LDRB     r1,[r1,#0]  ; CFG_ssl
000458  e1500001          CMP      r0,r1
00045c  1a000007          BNE      |L1.1152|
000460  e2490001          SUB      r0,r9,#1
000464  e28d107c          ADD      r1,sp,#0x7c
000468  e7d10000          LDRB     r0,[r1,r0]
00046c  e59f184c          LDR      r1,|L1.3264|
000470  e5d11000          LDRB     r1,[r1,#0]  ; CFG_ssr
000474  e1500001          CMP      r0,r1
000478  0a000000          BEQ      |L1.1152|
;;;260       goto r_cfg_end; 
00047c  ea0000af          B        |L1.1856|
                  |L1.1152|
;;;261      if(buf1[0] == CFG_ssl) 
000480  e5dd007c          LDRB     r0,[sp,#0x7c]
000484  e59f1830          LDR      r1,|L1.3260|
000488  e5d11000          LDRB     r1,[r1,#0]  ; CFG_ssl
00048c  e1500001          CMP      r0,r1
000490  1a000009          BNE      |L1.1212|
;;;262      { 
;;;263       buf1[n-1] = 0x00; 
000494  e3a00000          MOV      r0,#0
000498  e2491001          SUB      r1,r9,#1
00049c  e28d207c          ADD      r2,sp,#0x7c
0004a0  e7c20001          STRB     r0,[r2,r1]
;;;264       if(strcmp(buf1+1, (char*)section) == 0) 
0004a4  e1a01005          MOV      r1,r5
0004a8  e28d007d          ADD      r0,sp,#0x7d
0004ac  ebfffffe          BL       strcmp
0004b0  e3500000          CMP      r0,#0
0004b4  1a000000          BNE      |L1.1212|
;;;265        break;                                   /* 找到项section */ 
0004b8  ea000001          B        |L1.1220|
                  |L1.1212|
0004bc  e1a00000          MOV      r0,r0                 ;257
                  |L1.1216|
0004c0  eaffffbb          B        |L1.948|
                  |L1.1220|
0004c4  e1a00000          MOV      r0,r0
;;;266      } 
;;;267     }
;;;268      
;;;269     CFG_section_line_no = line_no;
0004c8  e59f07dc          LDR      r0,|L1.3244|
0004cc  e5808000          STR      r8,[r0,#0]  ; CFG_section_line_no
;;;270     //curpos = 0; 
;;;271     while(1)                                       /* 搜找key */ 
0004d0  ea000094          B        |L1.1832|
                  |L1.1236|
;;;272     { 
;;;273      ret = CFG_ERR_READ_FILE; 
0004d4  e3e0000b          MVN      r0,#0xb
0004d8  e58d0008          STR      r0,[sp,#8]
;;;274      n = FileGetLine(fhandle, curpos, buf1, MAX_CFG_BUF); 
0004dc  e3a03064          MOV      r3,#0x64
0004e0  e28d207c          ADD      r2,sp,#0x7c
0004e4  e1a0100a          MOV      r1,r10
0004e8  e1a00004          MOV      r0,r4
0004ec  ebfffffe          BL       FileGetLine
0004f0  e1a09000          MOV      r9,r0
;;;275      curpos += n + 2; 
0004f4  e2890002          ADD      r0,r9,#2
0004f8  e08aa000          ADD      r10,r10,r0
;;;276      if(n < -1) goto r_cfg_end; 
0004fc  e3790001          CMN      r9,#1
000500  aa000000          BGE      |L1.1288|
000504  ea00008d          B        |L1.1856|
                  |L1.1288|
;;;277      ret = CFG_KEY_NOT_FOUND; 
000508  e3e00001          MVN      r0,#1
00050c  e58d0008          STR      r0,[sp,#8]
;;;278      if(n < 0) goto r_cfg_end;                    /* 文件尾,未发现key */ 
000510  e3590000          CMP      r9,#0
000514  aa000000          BGE      |L1.1308|
000518  ea000088          B        |L1.1856|
                  |L1.1308|
;;;279      line_no++; 
00051c  e2888001          ADD      r8,r8,#1
;;;280      CFG_key_line_no = line_no; 
000520  e59f0788          LDR      r0,|L1.3248|
000524  e5808000          STR      r8,[r0,#0]  ; CFG_key_line_no
;;;281      CFG_key_lines = 1; 
000528  e3a00001          MOV      r0,#1
00052c  e59f1780          LDR      r1,|L1.3252|
000530  e5810000          STR      r0,[r1,#0]  ; CFG_key_lines
;;;282      n = strlen(strtriml(strtrimr(buf1))); 
000534  e28d007c          ADD      r0,sp,#0x7c
000538  ebfffffe          BL       strtrimr
00053c  e58d0004          STR      r0,[sp,#4]
000540  ebfffffe          BL       strtriml
000544  e1a0b000          MOV      r11,r0
000548  ebfffffe          BL       strlen
00054c  e1a09000          MOV      r9,r0
;;;283      if(n == 0 || buf1[0] == CFG_nts) continue;       /* 空行 或 注释行 */ 
000550  e3590000          CMP      r9,#0
000554  0a000004          BEQ      |L1.1388|
000558  e5dd007c          LDRB     r0,[sp,#0x7c]
00055c  e59f1754          LDR      r1,|L1.3256|
000560  e5d11000          LDRB     r1,[r1,#0]  ; CFG_nts
000564  e1500001          CMP      r0,r1
000568  1a000000          BNE      |L1.1392|
                  |L1.1388|
00056c  ea00006d          B        |L1.1832|
                  |L1.1392|
;;;284      ret = CFG_KEY_NOT_FOUND; 
000570  e3e00001          MVN      r0,#1
000574  e58d0008          STR      r0,[sp,#8]
;;;285      if(buf1[0] == CFG_ssl) goto r_cfg_end; 
000578  e5dd007c          LDRB     r0,[sp,#0x7c]
00057c  e59f1738          LDR      r1,|L1.3260|
000580  e5d11000          LDRB     r1,[r1,#0]  ; CFG_ssl
000584  e1500001          CMP      r0,r1
000588  1a000000          BNE      |L1.1424|
00058c  ea00006b          B        |L1.1856|
                  |L1.1424|
;;;286      if(buf1[n-1] == '+')                         /* 遇+号表示下一行继续  */ 
000590  e2490001          SUB      r0,r9,#1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -