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

📄 para.ls1

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0033 3400            414             ADDC    A,#00H
0035 FE              415             MOV     R6,A
0036 120000   F      416             LCALL   _FlashRdByte
0039 BFF016          417             CJNE    R7,#0F0H,?C0003
                     418     ;         StartAddr = ParaStart + SECTOR_SIZE + 2;
A51 MACRO ASSEMBLER  PARA                                                                 03/13/2009 15:44:57 PAGE     8

                     419                             ; SOURCE LINE # 83
003C 900000   F      420             MOV     DPTR,#ParaStart
003F 7401            421             MOV     A,#01H
0041 93              422             MOVC    A,@A+DPTR
0042 2482            423             ADD     A,#082H
0044                 424     ?C0068:
0044 FE              425             MOV     R6,A
0045 E4              426             CLR     A
0046 93              427             MOVC    A,@A+DPTR
0047 3400            428             ADDC    A,#00H
0049 900000   F      429             MOV     DPTR,#StartAddr?045
004C F0              430             MOVX    @DPTR,A
004D A3              431             INC     DPTR
004E CE              432             XCH     A,R6
004F F0              433             MOVX    @DPTR,A
0050 8003            434             SJMP    ?_ParaWrite?Redo
0052                 435     ?C0003:
                     436     ;     else
                     437     ;         return -1;
                     438                             ; SOURCE LINE # 85
0052 020000   F      439             LJMP    ?C0069
                     440     ;     
                     441     ;     Redo:
                     442                             ; SOURCE LINE # 87
0055                 443     ?_ParaWrite?Redo:
                     444     ;     // search and write
                     445     ;     for(i=StartAddr; i<StartAddr+SECTOR_SIZE-2; i+=2)
                     446                             ; SOURCE LINE # 89
0055 900000   F      447             MOV     DPTR,#StartAddr?045
0058 E0              448             MOVX    A,@DPTR
0059 FF              449             MOV     R7,A
005A A3              450             INC     DPTR
005B E0              451             MOVX    A,@DPTR
005C 900000   F      452             MOV     DPTR,#i?042
005F CF              453             XCH     A,R7
0060 F0              454             MOVX    @DPTR,A
0061 A3              455             INC     DPTR
0062 EF              456             MOV     A,R7
0063 F0              457             MOVX    @DPTR,A
0064                 458     ?C0007:
0064 900000   F      459             MOV     DPTR,#StartAddr?045+01H
0067 E0              460             MOVX    A,@DPTR
0068 247E            461             ADD     A,#07EH
006A FD              462             MOV     R5,A
006B 900000   F      463             MOV     DPTR,#StartAddr?045
006E E0              464             MOVX    A,@DPTR
006F 3400            465             ADDC    A,#00H
0071 FC              466             MOV     R4,A
0072 900000   F      467             MOV     DPTR,#i?042
0075 E0              468             MOVX    A,@DPTR
0076 FE              469             MOV     R6,A
0077 A3              470             INC     DPTR
0078 E0              471             MOVX    A,@DPTR
0079 FF              472             MOV     R7,A
007A C3              473             CLR     C
007B 9D              474             SUBB    A,R5
007C EE              475             MOV     A,R6
007D 9C              476             SUBB    A,R4
007E 4003            477             JC      $ + 5H
0080 020000   F      478             LJMP    ?C0008
                     479     ;     {
                     480                             ; SOURCE LINE # 90
                     481     ;         oldpara = FlashRdByte(i);
                     482                             ; SOURCE LINE # 91
0083 120000   F      483             LCALL   _FlashRdByte
                     484     ;---- Variable 'oldpara?044' assigned to Register 'R7' ----
A51 MACRO ASSEMBLER  PARA                                                                 03/13/2009 15:44:57 PAGE     9

                     485     ;         
                     486     ;         if(oldpara == PARA_EMPTY)                       // if empty, write para
                     487                             ; SOURCE LINE # 93
0086 EF              488             MOV     A,R7
0087 B4FF1B          489             CJNE    A,#0FFH,?C0010
                     490     ;         {
                     491                             ; SOURCE LINE # 94
                     492     ;             FlashWrByte(i, para);
                     493                             ; SOURCE LINE # 95
008A 900000   F      494             MOV     DPTR,#i?042
008D E0              495             MOVX    A,@DPTR
008E FE              496             MOV     R6,A
008F A3              497             INC     DPTR
0090 E0              498             MOVX    A,@DPTR
0091 FF              499             MOV     R7,A
0092 900000   F      500             MOV     DPTR,#para?040
0095 E0              501             MOVX    A,@DPTR
0096 FD              502             MOV     R5,A
0097 120000   F      503             LCALL   _FlashWrByte
                     504     ;             oldpara = FlashRdByte(i);
                     505                             ; SOURCE LINE # 96
009A 900000   F      506             MOV     DPTR,#i?042
009D E0              507             MOVX    A,@DPTR
009E FE              508             MOV     R6,A
009F A3              509             INC     DPTR
00A0 E0              510             MOVX    A,@DPTR
00A1 FF              511             MOV     R7,A
00A2 120000   F      512             LCALL   _FlashRdByte
                     513     ;         }
                     514                             ; SOURCE LINE # 97
00A5                 515     ?C0010:
                     516     ;             
                     517     ;         if(oldpara == para)                             // same as input para
                     518                             ; SOURCE LINE # 99
00A5 900000   F      519             MOV     DPTR,#para?040
00A8 E0              520             MOVX    A,@DPTR
00A9 6F              521             XRL     A,R7
00AA 7057            522             JNZ     ?C0009
                     523     ;         {
                     524                             ; SOURCE LINE # 100
                     525     ;             oldvalue = FlashRdByte(i+1);
                     526                             ; SOURCE LINE # 101
00AC 900000   F      527             MOV     DPTR,#i?042+01H
00AF E0              528             MOVX    A,@DPTR
00B0 2401            529             ADD     A,#01H
00B2 FF              530             MOV     R7,A
00B3 900000   F      531             MOV     DPTR,#i?042
00B6 E0              532             MOVX    A,@DPTR
00B7 3400            533             ADDC    A,#00H
00B9 FE              534             MOV     R6,A
00BA 120000   F      535             LCALL   _FlashRdByte
                     536     ;---- Variable 'oldvalue?043' assigned to Register 'R7' ----
                     537     ;             if(oldvalue == value)                       // same value, return success
                     538                             ; SOURCE LINE # 102
00BD 900000   F      539             MOV     DPTR,#value?041
00C0 E0              540             MOVX    A,@DPTR
00C1 FD              541             MOV     R5,A
00C2 6F              542             XRL     A,R7
00C3 7002            543             JNZ     ?C0012
                     544     ;             {
                     545                             ; SOURCE LINE # 103
                     546     ;                 return oldvalue;
                     547                             ; SOURCE LINE # 104
00C5 FE              548             MOV     R6,A
00C6 22              549             RET     
                     550     ;             }
A51 MACRO ASSEMBLER  PARA                                                                 03/13/2009 15:44:57 PAGE    10

                     551                             ; SOURCE LINE # 105
00C7                 552     ?C0012:
                     553     ;             else if((oldvalue | value) == oldvalue)     // can be over write
                     554                             ; SOURCE LINE # 106
00C7 ED              555             MOV     A,R5
00C8 4F              556             ORL     A,R7
00C9 6F              557             XRL     A,R7
00CA 702A            558             JNZ     ?C0014
                     559     ;             {
                     560                             ; SOURCE LINE # 107
                     561     ;                 FlashWrByte(i+1, value);
                     562                             ; SOURCE LINE # 108
00CC 900000   F      563             MOV     DPTR,#i?042+01H
00CF E0              564             MOVX    A,@DPTR
00D0 2401            565             ADD     A,#01H
00D2 FF              566             MOV     R7,A
00D3 900000   F      567             MOV     DPTR,#i?042
00D6 E0              568             MOVX    A,@DPTR
00D7 3400            569             ADDC    A,#00H
00D9 FE              570             MOV     R6,A
00DA 900000   F      571             MOV     DPTR,#value?041
00DD E0              572             MOVX    A,@DPTR
00DE FD              573             MOV     R5,A
00DF 120000   F      574             LCALL   _FlashWrByte
                     575     ;                 return FlashRdByte(i+1);
                     576                             ; SOURCE LINE # 109
00E2 900000   F      577             MOV     DPTR,#i?042+01H
00E5 E0              578             MOVX    A,@DPTR
00E6 2401            579             ADD     A,#01H
00E8 FF              580             MOV     R7,A
00E9 900000   F      581             MOV     DPTR,#i?042
00EC E0              582             MOVX    A,@DPTR
00ED 3400            583             ADDC    A,#00H
00EF FE              584             MOV     R6,A
00F0 120000   F      585             LCALL   _FlashRdByte
00F3 7E00            586             MOV     R6,#00H
00F5 22              587             RET     
                     588     ;             }
                     589                             ; SOURCE LINE # 110
00F6                 590     ?C0014:
                     591     ;             else                                        // should be erase 1st
                     592     ;             {                                           // then find a new place
                     593                             ; SOURCE LINE # 112
                     594     ;                 FlashWrByte(i, PARA_ERASHED);
                     595                             ; SOURCE LINE # 113
00F6 900000   F      596             MOV     DPTR,#i?042
00F9 E0              597             MOVX    A,@DPTR
00FA FE              598             MOV     R6,A
00FB A3              599             INC     DPTR
00FC E0              600             MOVX    A,@DPTR
00FD FF              601             MOV     R7,A
00FE E4              602             CLR     A
00FF FD              603             MOV     R5,A
0100 120000   F      604             LCALL   _FlashWrByte
                     605     ;             }
                     606                             ; SOURCE LINE # 114
                     607     ;         }
                     608                             ; SOURCE LINE # 115
                     609     ;     }
                     610                             ; SOURCE LINE # 116
0103                 611     ?C0009:
0103 900000   F      612             MOV     DPTR,#i?042+01H
0106 E0              613             MOVX    A,@DPTR
0107 2402            614             ADD     A,#02H
0109 F0              615             MOVX    @DPTR,A
010A 900000   F      616             MOV     DPTR,#i?042
A51 MACRO ASSEMBLER  PARA                                                                 03/13/2009 15:44:57 PAGE    11

010D E0              617             MOVX    A,@DPTR
010E 3400            618             ADDC    A,#00H
0110 F0              619             MOVX    @DPTR,A
0111 020000   F      620             LJMP    ?C0007
0114                 621     ?C0008:
                     622     ;     
                     623     ;     // check redo flag
                     624     ;     if(fRedo)
                     625                             ; SOURCE LINE # 119
0114 300005   F      626             JNB     fRedo?046,?C0016
                     627     ;         return -1;
                     628                             ; SOURCE LINE # 120
0117                 629     ?C0069:
0117 7EFF            630             MOV     R6,#0FFH
0119 7FFF            631             MOV     R7,#0FFH
011B 22              632             RET     
011C                 633     ?C0016:
                     634     ;     
                     635     ;     // copy parameters to new sector and erase old one
                     636     ;     // and update start address
                     637     ;     if(StartAddr == ParaStart+2)
                     638                             ; SOURCE LINE # 124
011C 900000   F      639             MOV     DPTR,#ParaStart
011F 7401            640             MOV     A,#01H

⌨️ 快捷键说明

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