📄 isd51.lst
字号:
459
000000 460 SerialInterrupt:
000000 C0D0 461 PUSH PSW
000002 C0E0 462 PUSH ACC
463+1 JNB_RI NoSerBreak
465+1 RBYTE ; Check for 0A5H Break Code
470
00000B F500 F 471 MOV _ISD_CHAR,A
472
00000D B4A55E 473 CJNE A,#0A5H,ReturnI
474
475+1 SET_TI
000012 75D000 477 MOV PSW,#0 ; Select Register Bank 0
000015 C000 478 PUSH AR0
000017 C001 479 PUSH AR1
000019 8010 480 SJMP SoftBreak
481
00001B 74FF 482 NoSerBreak: MOV A,#0FFH
00001D 75D000 483 CallBreak: MOV PSW,#0 ; Select Register Bank 0
000020 C000 484 PUSH AR0
000022 C001 485 PUSH AR1
000024 78FF 486 MOV R0,#?ISD?RAMTOP
487
000026 8600 488 MOV AR0,@R0 ; Load Start Address of Break Table
000028 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
00002B 74F7 508 SoftBreak: MOV A,#0F7H ; Send Idenifier
509
00002D 510+1 Send7Bytes: SBYTE ; Send Byte
000034 D001 517 POP AR1
000036 7805 518 MOV R0,#5
000038 D0E0 519 SendStackFrame: POP ACC
00003A 1100 F 520 ACALL ?ISD?SENDBYTE
00003C D8FA 521 DJNZ R0,SendStackFrame
00003E E9 522 MOV A,R1
00003F 1100 F 523 ?ISD?CMDLOOP2: ACALL ?ISD?SENDBYTE
524
525 ; Wait for Command
526 ; CmdAddrL, CmdAddrH, R0, ACC
527
000041 1100 F 528 ?ISD?CMDLOOP: ACALL ?ISD?GETBYTE ; Command Address
000043 C0E0 529 PUSH ACC
000045 1100 F 530 ACALL ?ISD?GETBYTE
000047 C0E0 531 PUSH ACC
AX51 MACRO ASSEMBLER ISD51 11/23/05 16:37:35 PAGE 9
000049 1100 F 532 ACALL ?ISD?GETBYTE
00004B F8 533 MOV R0,A
534 ;;; ACALL ?ISD?GETBYTE
535 ;;; RET
536
00004C 537+1 ?ISD?GETBYTE: GBYTE
000053 22 545 RET
546
547
548 ; Check Soft Breaks in Memory
000054 E581 549 CheckBreaks: MOV A,SP
000056 24FC 550 ADD A,#-4
000058 F9 551 MOV R1,A ; Address to PCH/PCL
000059 800C 552 SJMP CheckBreak1
00005B 08 553 CheckBreak: INC R0
00005C 19 554 DEC R1
00005D E6 555 MOV A,@R0 ; Compare Low Part
00005E 67 556 XRL A,@R1
00005F 08 557 INC R0
000060 09 558 INC R1
000061 7004 559 JNZ CheckBreak1
000063 E6 560 MOV A,@R0 ; Compare High Part
000064 67 561 XRL A,@R1
000065 60C4 562 JZ SoftBreak
000067 B8FEF1 563 CheckBreak1: CJNE R0,#?ISD?RAMTOP-1,CheckBreak
564
00006A D001 565 POP AR1
00006C D000 566 RestartUser: POP AR0
567
568
00006E D0E0 569 ReturnI: POP ACC
000070 D0D0 570 POP PSW
000072 32 571 RETI
572
573
574
000073 575+1 ?ISD?SENDBYTE: SBYTE
00007A 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 ;
00007B C0E0 589 ?ISD?RESTART: PUSH ACC ; PCL Content of User Program
00007D 1100 F 590 ACALL ?ISD?GETBYTE
00007F C0E0 591 PUSH ACC ; PCH Content of User Program
000081 1100 F 592 ACALL ?ISD?GETBYTE
000083 C0E0 593 PUSH ACC ; PSW Content of User Program
000085 1100 F 594 ACALL ?ISD?GETBYTE
000087 F9 595 MOV R1,A ; R1 Content of User Program
000088 1100 F 596 ACALL ?ISD?GETBYTE ; ACC Content of User Program
00008A C0E0 597 PUSH ACC
00008C C000 598 PUSH AR0
00008E 78FF 599 MOV R0,#?ISD?RAMTOP
000090 E6 600 MOV A,@R0
601
AX51 MACRO ASSEMBLER ISD51 11/23/05 16:37:35 PAGE 10
000091 7002 651 JNZ RestartSS
652+1 CLR_TI
000095 0100 F 654 RestartSS: AJMP RestartUser
655
656
657 ;--------------------------------------------------------------------------;
658 ; Insert HW Breakpoints
659
AX51 MACRO ASSEMBLER ISD51 11/23/05 16:37:35 PAGE 11
680 ;--------------------------------------------------------------------------
681 ; Command: Write SFR DPL, DPH
682 ; LOW (?ISD?WRITESFR00), HIGH (?ISD?WRITESFR00), DPL, DPH
683 ;
684 ;
000097 685 ?ISD?WRITESFR00:
000097 8882 686 MOV DPL,R0
000099 F583 687 MOV DPH,A
00009B 0100 F 688 AJMP ?ISD?CMDLOOP
689
690 ;--------------------------------------------------------------------------
691 ; Command: Write SFR SP, B
692 ; LOW (?ISD?WRITESFR01), HIGH (?ISD?WRITESFR01), SP, B
693 ;
00009D 694 ?ISD?WRITESFR01:
00009D 8881 695 MOV SP,R0
00009F F5F0 696 MOV B,A
0000A1 0100 F 697 AJMP ?ISD?CMDLOOP
698
699 ;--------------------------------------------------------------------------
700 ; Command: Write SFR02: P0
701 ; LOW (?ISD?WRITESFR02), HIGH (?ISD?WRITESFR02), dummy, P0
702 ;
0000A3 703 ?ISD?WRITESFR02:
0000A3 F580 704 MOV P0,A
0000A5 0100 F 705 AJMP ?ISD?CMDLOOP
706
707 ;--------------------------------------------------------------------------
708 ; Command: Write SFR03: P3
709 ; LOW (?ISD?WRITESFR03), HIGH (?ISD?WRITESFR03), dummy, P3
710 ;
0000A7 711 ?ISD?WRITESFR03:
0000A7 F5B0 712 MOV P3,A
0000A9 0100 F 713 AJMP ?ISD?CMDLOOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -