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