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

📄 main.ls1

📁 实验7 在RAM中执行程序代码 实验7 在RAM中执行程序代码 实验7 在RAM中执行程序代码
💻 LS1
📖 第 1 页 / 共 5 页
字号:
001B C006            439             PUSH    AR6
001D E500     F      440             MOV     A,hex?741
001F 2402            441             ADD     A,#02H
0021 F8              442             MOV     R0,A
0022 E2              443             MOVX    A,@R0
0023 FF              444             MOV     R7,A
0024 120000   F      445             LCALL   _toint
0027 D0E0            446             POP     ACC
0029 2F              447             ADD     A,R7
A51 MACRO ASSEMBLER  MAIN                                                                 03/29/2007 22:55:54 PAGE     8

002A F500     F      448             MOV     t?744,A
                     449     ;       if ( t > 32 ) return 0;
                     450                             ; SOURCE LINE # 140
002C D3              451             SETB    C
002D 9420            452             SUBB    A,#020H
002F 4001            453             JC      ?C0010
0031 22              454             RET     
0032                 455     ?C0010:
                     456     ;       n = 2 * t + 11;
                     457                             ; SOURCE LINE # 141
0032 E500     F      458             MOV     A,t?744
0034 25E0            459             ADD     A,ACC
0036 240B            460             ADD     A,#0BH
0038 F500     F      461             MOV     n?745,A
                     462     ;       if ( n != strlen(hex) ) return 0;
                     463                             ; SOURCE LINE # 142
003A A900     F      464             MOV     R1,hex?741
003C 7A00            465             MOV     R2,#00H
003E 7BFE            466             MOV     R3,#0FEH
0040 120000   F      467             LCALL   _strlen
0043 EF              468             MOV     A,R7
0044 6500     F      469             XRL     A,n?745
0046 7001            470             JNZ     ?C0057
0048 EE              471             MOV     A,R6
0049                 472     ?C0057:
0049 6002            473             JZ      ?C0011
004B C3              474             CLR     C
004C 22              475             RET     
004D                 476     ?C0011:
                     477     ;       IntelHEX->ll = t;
                     478                             ; SOURCE LINE # 143
004D A800     F      479             MOV     R0,IntelHEX?740
004F A600     F      480             MOV     @R0,t?744
                     481     ;       cc = t;
                     482                             ; SOURCE LINE # 144
0051 850000   F      483             MOV     cc?746,t?744
                     484     ; //提取地址
                     485     ;       t = (toint(hex[3])<<4) + toint(hex[4]);
                     486                             ; SOURCE LINE # 146
0054 E500     F      487             MOV     A,hex?741
0056 2403            488             ADD     A,#03H
0058 F8              489             MOV     R0,A
0059 E2              490             MOVX    A,@R0
005A FF              491             MOV     R7,A
005B 120000   F      492             LCALL   _toint
005E EF              493             MOV     A,R7
005F C4              494             SWAP    A
0060 54F0            495             ANL     A,#0F0H
0062 FE              496             MOV     R6,A
0063 C006            497             PUSH    AR6
0065 E500     F      498             MOV     A,hex?741
0067 2404            499             ADD     A,#04H
0069 F8              500             MOV     R0,A
006A E2              501             MOVX    A,@R0
006B FF              502             MOV     R7,A
006C 120000   F      503             LCALL   _toint
006F D0E0            504             POP     ACC
0071 2F              505             ADD     A,R7
0072 F500     F      506             MOV     t?744,A
                     507     ;       cc += t;
                     508                             ; SOURCE LINE # 147
0074 2500     F      509             ADD     A,cc?746
0076 F500     F      510             MOV     cc?746,A
                     511     ;       x.CharPart.H = t;
                     512                             ; SOURCE LINE # 148
0078 850000   F      513             MOV     x?747,t?744
A51 MACRO ASSEMBLER  MAIN                                                                 03/29/2007 22:55:54 PAGE     9

                     514     ;       t = (toint(hex[5])<<4) + toint(hex[6]);
                     515                             ; SOURCE LINE # 149
007B E500     F      516             MOV     A,hex?741
007D 2405            517             ADD     A,#05H
007F F8              518             MOV     R0,A
0080 E2              519             MOVX    A,@R0
0081 FF              520             MOV     R7,A
0082 120000   F      521             LCALL   _toint
0085 EF              522             MOV     A,R7
0086 C4              523             SWAP    A
0087 54F0            524             ANL     A,#0F0H
0089 FE              525             MOV     R6,A
008A C006            526             PUSH    AR6
008C E500     F      527             MOV     A,hex?741
008E 2406            528             ADD     A,#06H
0090 F8              529             MOV     R0,A
0091 E2              530             MOVX    A,@R0
0092 FF              531             MOV     R7,A
0093 120000   F      532             LCALL   _toint
0096 D0E0            533             POP     ACC
0098 2F              534             ADD     A,R7
0099 F500     F      535             MOV     t?744,A
                     536     ;       cc += t;
                     537                             ; SOURCE LINE # 150
009B 2500     F      538             ADD     A,cc?746
009D F500     F      539             MOV     cc?746,A
                     540     ;       x.CharPart.L = t;
                     541                             ; SOURCE LINE # 151
009F 850000   F      542             MOV     x?747+01H,t?744
                     543     ;       IntelHEX->aaaa = x.i;
                     544                             ; SOURCE LINE # 152
00A2 E500     F      545             MOV     A,IntelHEX?740
00A4 04              546             INC     A
00A5 F8              547             MOV     R0,A
00A6 A600     F      548             MOV     @R0,x?747
00A8 08              549             INC     R0
00A9 A600     F      550             MOV     @R0,x?747+01H
                     551     ; //提取记录类型
                     552     ;       t = (toint(hex[7])<<4) + toint(hex[8]);
                     553                             ; SOURCE LINE # 154
00AB E500     F      554             MOV     A,hex?741
00AD 2407            555             ADD     A,#07H
00AF F8              556             MOV     R0,A
00B0 E2              557             MOVX    A,@R0
00B1 FF              558             MOV     R7,A
00B2 120000   F      559             LCALL   _toint
00B5 EF              560             MOV     A,R7
00B6 C4              561             SWAP    A
00B7 54F0            562             ANL     A,#0F0H
00B9 FE              563             MOV     R6,A
00BA C006            564             PUSH    AR6
00BC E500     F      565             MOV     A,hex?741
00BE 2408            566             ADD     A,#08H
00C0 F8              567             MOV     R0,A
00C1 E2              568             MOVX    A,@R0
00C2 FF              569             MOV     R7,A
00C3 120000   F      570             LCALL   _toint
00C6 D0E0            571             POP     ACC
00C8 2F              572             ADD     A,R7
00C9 F500     F      573             MOV     t?744,A
                     574     ;       if ( (t==0) || (t==1) )
                     575                             ; SOURCE LINE # 155
00CB 6003            576             JZ      ?C0013
00CD B4010F          577             CJNE    A,#01H,?C0012
00D0                 578     ?C0013:
                     579     ;       {
A51 MACRO ASSEMBLER  MAIN                                                                 03/29/2007 22:55:54 PAGE    10

                     580                             ; SOURCE LINE # 156
                     581     ;               cc += t;
                     582                             ; SOURCE LINE # 157
00D0 E500     F      583             MOV     A,t?744
00D2 2500     F      584             ADD     A,cc?746
00D4 F500     F      585             MOV     cc?746,A
                     586     ;               IntelHEX->tt = t;
                     587                             ; SOURCE LINE # 158
00D6 E500     F      588             MOV     A,IntelHEX?740
00D8 2403            589             ADD     A,#03H
00DA F8              590             MOV     R0,A
00DB A600     F      591             MOV     @R0,t?744
                     592     ;       }
                     593                             ; SOURCE LINE # 159
00DD 8002            594             SJMP    ?C0014
00DF                 595     ?C0012:
                     596     ;       else
                     597     ;       {
                     598                             ; SOURCE LINE # 161
                     599     ;               return 0;
                     600                             ; SOURCE LINE # 162
00DF C3              601             CLR     C
00E0 22              602             RET     
                     603     ;       }
                     604                             ; SOURCE LINE # 163
00E1                 605     ?C0014:
                     606     ; //提取数据
                     607     ;       i = 9;
                     608                             ; SOURCE LINE # 165
00E1 750009   F      609             MOV     i?742,#09H
                     610     ;       if ( t == 0 )
                     611                             ; SOURCE LINE # 166
00E4 E500     F      612             MOV     A,t?744
00E6 703F            613             JNZ     ?C0015
                     614     ;       {
                     615                             ; SOURCE LINE # 167
                     616     ;               j = 0;
                     617                             ; SOURCE LINE # 168
00E8 F500     F      618             MOV     j?743,A
                     619     ;               n = IntelHEX->ll;
                     620                             ; SOURCE LINE # 169
00EA A800     F      621             MOV     R0,IntelHEX?740
00EC E6              622             MOV     A,@R0
00ED F500     F      623             MOV     n?745,A
00EF                 624     ?C0018:
                     625     ;               do
                     626     ;               {
                     627                             ; SOURCE LINE # 171
                     628     ;                       t = (toint(hex[i++])<<4);
                     629                             ; SOURCE LINE # 172
00EF AF00     F      630             MOV     R7,i?742
00F1 0500     F      631             INC     i?742
00F3 E500     F      632             MOV     A,hex?741
00F5 2F              633             ADD     A,R7
00F6 F8              634             MOV     R0,A
00F7 E2              635             MOVX    A,@R0
00F8 FF              636             MOV     R7,A
00F9 120000   F      637             LCALL   _toint
00FC EF              638             MOV     A,R7
00FD C4              639             SWAP    A
00FE 54F0            640             ANL     A,#0F0H
0100 F500     F      641             MOV     t?744,A
                     642     ;                       t += toint(hex[i++]);
                     643                             ; SOURCE LINE # 173
0102 AF00     F      644             MOV     R7,i?742
0104 0500     F      645             INC     i?742
A51 MACRO ASSEMBLER  MAIN                                                                 03/29/2007 22:55:54 PAGE    11

0106 E500     F      646             MOV     A,hex?741
0108 2F              647             ADD     A,R7
0109 F8              648             MOV     R0,A
010A E2              649             MOVX    A,@R0
010B FF              650             MOV     R7,A
010C 120000   F      651             LCALL   _toint
010F EF              652             MOV     A,R7
0110 2500     F      653             ADD     A,t?744
0112 F500     F      654             MOV     t?744,A
                     655     ;                       cc += t;
                     656                             ; SOURCE LINE # 174
0114 2500     F      657             ADD     A,cc?746
0116 F500     F      658             MOV     cc?746,A
                     659     ;                       IntelHEX->dd[j++] = t;
                     660                             ; SOURCE LINE # 175
0118 AF00     F      661             MOV     R7,j?743
011A 0500     F      662             INC     j?743
011C E500     F      663             MOV     A,IntelHEX?740

⌨️ 快捷键说明

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