📄 main.ls1
字号:
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 + -