📄 isd51.lst
字号:
479
480 SET_TI
0012 75D000 482 MOV PSW,#0 ; Select Register Bank 0
0015 C000 483 PUSH AR0
0017 C001 484 PUSH AR1
0019 8010 485 SJMP SoftBreak
486
001B 74FF 487 NoSerBreak: MOV A,#0FFH
001D 75D000 488 CallBreak: MOV PSW,#0 ; Select Register Bank 0
0020 C000 489 PUSH AR0
0022 C001 490 PUSH AR1
0024 78FF 491 MOV R0,#?ISD?RAMTOP
492
0026 8600 493 MOV AR0,@R0 ; Load Start Address of Break Table
0028 B8FF29 494 CJNE R0,#0xFF,CheckBreaks
509 ; Called when a Breakpoint is reached or in Single Stepping Mode
510
511 ; Sends Break-Idenfier, R0, ACC, PSW, PCH, PCL, R1
512
002B 74F7 513 SoftBreak: MOV A,#0F7H ; Send Idenifier
514
002D 515 Send7Bytes: SBYTE ; Send Byte
516+1 JNB_TI $
518+1 CLR_TI
520+1 WR_SBUF ; MOV SBUF,A
0034 D001 522 POP AR1
0036 7805 523 MOV R0,#5
0038 D0E0 524 SendStackFrame: POP ACC
003A 1100 F 525 ACALL ?ISD?SENDBYTE
003C D8FA 526 DJNZ R0,SendStackFrame
003E E9 527 MOV A,R1
A51 MACRO ASSEMBLER ISD51 09/27/2006 15:13:06 PAGE 9
003F 1100 F 528 ?ISD?CMDLOOP2: ACALL ?ISD?SENDBYTE
529
530 ; Wait for Command
531 ; CmdAddrL, CmdAddrH, R0, ACC
532
0041 1100 F 533 ?ISD?CMDLOOP: ACALL ?ISD?GETBYTE ; Command Address
0043 C0E0 534 PUSH ACC
0045 1100 F 535 ACALL ?ISD?GETBYTE
0047 C0E0 536 PUSH ACC
0049 1100 F 537 ACALL ?ISD?GETBYTE
004B F8 538 MOV R0,A
539 ;;; ACALL ?ISD?GETBYTE
540 ;;; RET
541
004C 542 ?ISD?GETBYTE: GBYTE
543+1 JNB_RI $
545+1 RBYTE
0053 22 550 RET
551
552
553 ; Check Soft Breaks in Memory
0054 E581 554 CheckBreaks: MOV A,SP
0056 24FC 555 ADD A,#-4
0058 F9 556 MOV R1,A ; Address to PCH/PCL
0059 800C 557 SJMP CheckBreak1
005B 08 558 CheckBreak: INC R0
005C 19 559 DEC R1
005D E6 560 MOV A,@R0 ; Compare Low Part
005E 67 561 XRL A,@R1
005F 08 562 INC R0
0060 09 563 INC R1
0061 7004 564 JNZ CheckBreak1
0063 E6 565 MOV A,@R0 ; Compare High Part
0064 67 566 XRL A,@R1
0065 60C4 567 JZ SoftBreak
0067 B8FEF1 568 CheckBreak1: CJNE R0,#?ISD?RAMTOP-1,CheckBreak
569
006A D001 570 POP AR1
006C D000 571 RestartUser: POP AR0
572
573
006E D0E0 574 ReturnI: POP ACC
0070 D0D0 575 POP PSW
0072 32 576 RETI
577
578
579
0073 580 ?ISD?SENDBYTE: SBYTE
581+1 JNB_TI $
583+1 CLR_TI
585+1 WR_SBUF ; MOV SBUF,A
007A 22 587 RET
588
589 ;--------------------------------------------------------------------------
590 ; Command: Restart User Program
591 ; LOW (?ISD?RESTART), HIGH (?ISD?RESTART), R0, PCL, PCH, PSW, R1, ACC
592 ;
593 ;
007B C0E0 594 ?ISD?RESTART: PUSH ACC ; PCL Content of User Program
007D 1100 F 595 ACALL ?ISD?GETBYTE
007F C0E0 596 PUSH ACC ; PCH Content of User Program
0081 1100 F 597 ACALL ?ISD?GETBYTE
0083 C0E0 598 PUSH ACC ; PSW Content of User Program
0085 1100 F 599 ACALL ?ISD?GETBYTE
0087 F9 600 MOV R1,A ; R1 Content of User Program
0088 1100 F 601 ACALL ?ISD?GETBYTE ; ACC Content of User Program
A51 MACRO ASSEMBLER ISD51 09/27/2006 15:13:06 PAGE 10
008A C0E0 602 PUSH ACC
008C C000 603 PUSH AR0
008E 78FF 604 MOV R0,#?ISD?RAMTOP
0090 E6 605 MOV A,@R0
606
0091 7002 656 JNZ RestartSS
657 CLR_TI
0095 0100 F 659 RestartSS: AJMP RestartUser
660
661
662 ;--------------------------------------------------------------------------;
663 ; Insert HW Breakpoints
664
A51 MACRO ASSEMBLER ISD51 09/27/2006 15:13:06 PAGE 11
685 ;--------------------------------------------------------------------------
686 ; Command: Write SFR DPL, DPH
687 ; LOW (?ISD?WRITESFR00), HIGH (?ISD?WRITESFR00), DPL, DPH
688 ;
689 ;
0097 690 ?ISD?WRITESFR00:
0097 8882 691 MOV DPL,R0
0099 F583 692 MOV DPH,A
009B 0100 F 693 AJMP ?ISD?CMDLOOP
694
695 ;--------------------------------------------------------------------------
696 ; Command: Write SFR SP, B
697 ; LOW (?ISD?WRITESFR01), HIGH (?ISD?WRITESFR01), SP, B
698 ;
009D 699 ?ISD?WRITESFR01:
009D 8881 700 MOV SP,R0
009F F5F0 701 MOV B,A
00A1 0100 F 702 AJMP ?ISD?CMDLOOP
703
704 ;--------------------------------------------------------------------------
705 ; Command: Write SFR02: P0
706 ; LOW (?ISD?WRITESFR02), HIGH (?ISD?WRITESFR02), dummy, P0
707 ;
00A3 708 ?ISD?WRITESFR02:
00A3 F580 709 MOV P0,A
00A5 0100 F 710 AJMP ?ISD?CMDLOOP
711
712 ;--------------------------------------------------------------------------
713 ; Command: Write SFR03: P3
714 ; LOW (?ISD?WRITESFR03), HIGH (?ISD?WRITESFR03), dummy, P3
715 ;
00A7 716 ?ISD?WRITESFR03:
00A7 F5B0 717 MOV P3,A
00A9 0100 F 718 AJMP ?ISD?CMDLOOP
719
720
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -