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

📄 para.ls1

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0121 93              641             MOVC    A,@A+DPTR
0122 2402            642             ADD     A,#02H
0124 FF              643             MOV     R7,A
0125 E4              644             CLR     A
0126 93              645             MOVC    A,@A+DPTR
0127 3400            646             ADDC    A,#00H
0129 FE              647             MOV     R6,A
012A 900000   F      648             MOV     DPTR,#StartAddr?045
012D E0              649             MOVX    A,@DPTR
012E 6E              650             XRL     A,R6
012F 7003            651             JNZ     ?C0054
0131 A3              652             INC     DPTR
0132 E0              653             MOVX    A,@DPTR
0133 6F              654             XRL     A,R7
0134                 655     ?C0054:
0134 700F            656             JNZ     ?C0017
                     657     ;     {
                     658                             ; SOURCE LINE # 125
                     659     ;         ParaCopy(1);
                     660                             ; SOURCE LINE # 126
0136 D200     F      661             SETB    ?ParaCopy?BIT
0138 120000   F      662             LCALL   ParaCopy
                     663     ;         StartAddr = ParaStart + SECTOR_SIZE + 2;
                     664                             ; SOURCE LINE # 127
013B 900000   F      665             MOV     DPTR,#ParaStart
013E 7401            666             MOV     A,#01H
0140 93              667             MOVC    A,@A+DPTR
0141 2482            668             ADD     A,#082H
                     669     ;     }
                     670                             ; SOURCE LINE # 128
0143 800D            671             SJMP    ?C0067
0145                 672     ?C0017:
                     673     ;     else
                     674     ;     {
                     675                             ; SOURCE LINE # 130
                     676     ;         ParaCopy(0);
                     677                             ; SOURCE LINE # 131
0145 C200     F      678             CLR     ?ParaCopy?BIT
0147 120000   F      679             LCALL   ParaCopy
                     680     ;         StartAddr = ParaStart + 2;
                     681                             ; SOURCE LINE # 132
014A 900000   F      682             MOV     DPTR,#ParaStart
A51 MACRO ASSEMBLER  PARA                                                                 03/13/2009 15:44:57 PAGE    12

014D 7401            683             MOV     A,#01H
014F 93              684             MOVC    A,@A+DPTR
0150 2402            685             ADD     A,#02H
0152                 686     ?C0067:
0152 FE              687             MOV     R6,A
0153 E4              688             CLR     A
0154 93              689             MOVC    A,@A+DPTR
0155 3400            690             ADDC    A,#00H
0157 900000   F      691             MOV     DPTR,#StartAddr?045
015A F0              692             MOVX    @DPTR,A
015B A3              693             INC     DPTR
015C CE              694             XCH     A,R6
015D F0              695             MOVX    @DPTR,A
                     696     ;     }
                     697                             ; SOURCE LINE # 133
015E                 698     ?C0018:
                     699     ;     
                     700     ;     // update redo flag
                     701     ;     fRedo = 1;
                     702                             ; SOURCE LINE # 136
015E D200     F      703             SETB    fRedo?046
                     704     ;     // again
                     705     ;     goto Redo;
                     706                             ; SOURCE LINE # 138
0160 020000   F      707             LJMP    ?_ParaWrite?Redo
                     708     ; END OF _ParaWrite
                     709     
                     710     ; }
                     711     ; 
                     712     ; // read a pafameter value
                     713     ; // para: parameter to be read
                     714     ; // return: positive value for reading, -1 for error
                     715     ; int ParaRead(unsigned char para)
                     716     
----                 717             RSEG  ?PR?_ParaRead?PARA
0000                 718     _ParaRead:
                     719             USING   0
                     720                             ; SOURCE LINE # 144
0000 900000   F      721             MOV     DPTR,#para?147
0003 EF              722             MOV     A,R7
0004 F0              723             MOVX    @DPTR,A
                     724     ; {
                     725                             ; SOURCE LINE # 145
                     726     ;     unsigned int i;
                     727     ;     unsigned int StartAddr;
                     728     ;     unsigned char oldpara;
                     729     ;     
                     730     ;     // find which sector is in use now
                     731     ;     if(FlashRdByte(ParaStart+1) == H_USING)
                     732                             ; SOURCE LINE # 151
0005 900000   F      733             MOV     DPTR,#ParaStart
0008 7401            734             MOV     A,#01H
000A 93              735             MOVC    A,@A+DPTR
000B 2401            736             ADD     A,#01H
000D FF              737             MOV     R7,A
000E E4              738             CLR     A
000F 93              739             MOVC    A,@A+DPTR
0010 3400            740             ADDC    A,#00H
0012 FE              741             MOV     R6,A
0013 120000   F      742             LCALL   _FlashRdByte
0016 BFF00A          743             CJNE    R7,#0F0H,?C0019
                     744     ;         StartAddr = ParaStart + 2;
                     745                             ; SOURCE LINE # 152
0019 900000   F      746             MOV     DPTR,#ParaStart
001C 7401            747             MOV     A,#01H
001E 93              748             MOVC    A,@A+DPTR
A51 MACRO ASSEMBLER  PARA                                                                 03/13/2009 15:44:57 PAGE    13

001F 2402            749             ADD     A,#02H
0021 801C            750             SJMP    ?C0070
0023                 751     ?C0019:
                     752     ;     else if(FlashRdByte(ParaStart+SECTOR_SIZE+1) == H_USING)
                     753                             ; SOURCE LINE # 153
0023 900000   F      754             MOV     DPTR,#ParaStart
0026 7401            755             MOV     A,#01H
0028 93              756             MOVC    A,@A+DPTR
0029 2481            757             ADD     A,#081H
002B FF              758             MOV     R7,A
002C E4              759             CLR     A
002D 93              760             MOVC    A,@A+DPTR
002E 3400            761             ADDC    A,#00H
0030 FE              762             MOV     R6,A
0031 120000   F      763             LCALL   _FlashRdByte
0034 BFF016          764             CJNE    R7,#0F0H,?C0021
                     765     ;         StartAddr = ParaStart + SECTOR_SIZE + 2;
                     766                             ; SOURCE LINE # 154
0037 900000   F      767             MOV     DPTR,#ParaStart
003A 7401            768             MOV     A,#01H
003C 93              769             MOVC    A,@A+DPTR
003D 2482            770             ADD     A,#082H
003F                 771     ?C0070:
003F FE              772             MOV     R6,A
0040 E4              773             CLR     A
0041 93              774             MOVC    A,@A+DPTR
0042 3400            775             ADDC    A,#00H
0044 900000   F      776             MOV     DPTR,#StartAddr?149
0047 F0              777             MOVX    @DPTR,A
0048 A3              778             INC     DPTR
0049 CE              779             XCH     A,R6
004A F0              780             MOVX    @DPTR,A
004B 8002            781             SJMP    ?C0020
004D                 782     ?C0021:
                     783     ;     else
                     784     ;         return -1;
                     785                             ; SOURCE LINE # 156
004D 8067            786             SJMP    ?C0072
004F                 787     ?C0020:
                     788     ; 
                     789     ;     // search parameter
                     790     ;     for(i=StartAddr; i<StartAddr+SECTOR_SIZE-2; i+=2)
                     791                             ; SOURCE LINE # 159
004F 900000   F      792             MOV     DPTR,#StartAddr?149
0052 E0              793             MOVX    A,@DPTR
0053 FF              794             MOV     R7,A
0054 A3              795             INC     DPTR
0055 E0              796             MOVX    A,@DPTR
0056 900000   F      797             MOV     DPTR,#i?148
0059 CF              798             XCH     A,R7
005A F0              799             MOVX    @DPTR,A
005B A3              800             INC     DPTR
005C EF              801             MOV     A,R7
005D F0              802             MOVX    @DPTR,A
005E                 803     ?C0024:
005E 900000   F      804             MOV     DPTR,#StartAddr?149+01H
0061 E0              805             MOVX    A,@DPTR
0062 247E            806             ADD     A,#07EH
0064 FD              807             MOV     R5,A
0065 900000   F      808             MOV     DPTR,#StartAddr?149
0068 E0              809             MOVX    A,@DPTR
0069 3400            810             ADDC    A,#00H
006B FC              811             MOV     R4,A
006C 900000   F      812             MOV     DPTR,#i?148
006F E0              813             MOVX    A,@DPTR
0070 FE              814             MOV     R6,A
A51 MACRO ASSEMBLER  PARA                                                                 03/13/2009 15:44:57 PAGE    14

0071 A3              815             INC     DPTR
0072 E0              816             MOVX    A,@DPTR
0073 FF              817             MOV     R7,A
0074 C3              818             CLR     C
0075 9D              819             SUBB    A,R5
0076 EE              820             MOV     A,R6
0077 9C              821             SUBB    A,R4
0078 503C            822             JNC     ?C0025
                     823     ;     {
                     824                             ; SOURCE LINE # 160
                     825     ;         oldpara = FlashRdByte(i);
                     826                             ; SOURCE LINE # 161
007A 120000   F      827             LCALL   _FlashRdByte
007D 900000   F      828             MOV     DPTR,#oldpara?150
0080 EF              829             MOV     A,R7
0081 F0              830             MOVX    @DPTR,A
                     831     ;         if(oldpara == para)
                     832                             ; SOURCE LINE # 162
0082 900000   F      833             MOV     DPTR,#para?147
0085 E0              834             MOVX    A,@DPTR
0086 6F              835             XRL     A,R7
0087 7014            836             JNZ     ?C0027
                     837     ;             return FlashRdByte(i+1);
                     838                             ; SOURCE LINE # 163
0089 900000   F      839             MOV     DPTR,#i?148+01H
008C E0              840             MOVX    A,@DPTR
008D 2401            841             ADD     A,#01H
008F FF              842             MOV     R7,A
0090 900000   F      843             MOV     DPTR,#i?148
0093 E0              844             MOVX    A,@DPTR
0094 3400            845             ADDC    A,#00H
0096 FE              846             MOV     R6,A
0097 120000   F      847             LCALL   _FlashRdByte
009A 7E00            848             MOV     R6,#00H
009C 22              849             RET     
009D                 850     ?C0027:
                     851     ;         else if(oldpara == PARA_EMPTY)
                     852                             ; SOURCE LINE # 164
009D 900000   F      853             MOV     DPTR,#oldpara?150
00A0 E0              854             MOVX    A,@DPTR
00A1 B4FF02          855             CJNE    A,#0FFH,?C0026
                     856     ;             return -1;
                     857                             ; SOURCE LINE # 165
00A4                 858     ?C0071:
00A4 8010            859             SJMP    ?C0072
                     860     ;     }
                     861                             ; SOURCE LINE # 166
00A6                 862     ?C0026:
00A6 900000   F      863             MOV     DPTR,#i?148+01H
00A9 E0              864             MOVX    A,@DPTR
00AA 2402            865             ADD     A,#02H
00AC F0              866             MOVX    @DPTR,A
00AD 900000   F      867             MOV     DPTR,#i?148
00B0 E0              868             MOVX    A,@DPTR
00B1 3400            869             ADDC    A,#00H

⌨️ 快捷键说明

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