| 
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
 
; G* ~/ p+ G% u; O单片机源程序如下:- #include "STC8A8K64S4A12.h"
 - #include <bit_switch.h>
 - #include <sfr_switch.h>
 - #define R0         DATA[0]
 - #define R1         DATA[1]
 - #define R2         DATA[2]
 - #define R3         DATA[3]
 - #define R4         DATA[4]
 - #define R5         DATA[5]
 - #define R6         DATA[6]
 - #define R7         DATA[7]
 - #define PCL                         ((unsigned char data*)&
 C_)[1] - #define PCH                         ((unsigned char data*)&
 C_)[0] - #define DPL_                 ((unsigned char data*)&DPTR)[1]
 - #define DPH_                 ((unsigned char data*)&DPTR)[0]
 - #define EC       ((unsigned char code*)65024)
 - #define PDATA    ((unsigned char pdata*)0)
 - unsigned char A_,B_,SP_;
 - unsigned int PC_,DPTR;
 - bdata unsigned char PSW_,bit_t;
 - idata unsigned char DATA[128];
 - xdata unsigned char XDATA[8192];
 - sbit P_=PSW_^0;
 - sbit F1_=PSW_^1;
 - sbit OV_=PSW_^2;
 - sbit RS0_=PSW_^3;
 - sbit RS1_=PSW_^4;
 - sbit F0_=PSW_^5;
 - sbit AC_=PSW_^6;
 - sbit CY_=PSW_^7;
 - sbit B0=bit_t^0;
 - sbit B1=bit_t^1;
 - sbit B2=bit_t^2;
 - sbit B3=bit_t^3;
 - sbit B4=bit_t^4;
 - sbit B5=bit_t^5;
 - sbit B6=bit_t^6;
 - sbit B7=bit_t^7;
 - void C51_core(){
 -         unsigned char PSW_b;//PSW备份
 -         unsigned int PC_t;//PC副本
 -         switch(EC[PC_]){
 -                 case 0
 C_++;break;//空指令 NOP -                 case 1
 C_=EC[PC_+1];break;//短跳转 AJMP ADDR11 00H -                 case 2
 SW_b=EC[PC_+1] CL=EC[PC_+2];PCH=PSW_b;break;//长跳转 LJMP -                 case 3://累加器循环右移 RR A
 -                         ACC=A_;
 -                         __asm RR A
 -                         PSW_=PSW;
 -                         A_=ACC;
 -                         PC_++;
 -                         break;
 -                 case 4://累加器加1 INC A
 -                         ACC=A_;
 -                         __asm INC A
 -                         PSW_=PSW;
 -                         A_=ACC;
 -                         PC_++;
 -                         break;
 -                 case 5
 ATA[EC[PC_+1]]++;PC_+=2;break;//直接地址单元加1 INC DIRECT -                 case 6
 ATA[R0]++;PC_++;break;//间接地址单元加1 INC @R0 -                 case 7
 ATA[R1]++;PC_++;break;//间接地址单元加1 INC @R1 -                 case 8:R0++;PC_++;break;//寄存器加1 INC R0
 -                 case 9:R1++;PC_++;break;//寄存器加1 INC R1
 -                 case 10:R2++;PC_++;break;//寄存器加1 INC R2
 -                 case 11:R3++;PC_++;break;//寄存器加1 INC R3
 -                 case 12:R4++;PC_++;break;//寄存器加1 INC R4
 -                 case 13:R5++;PC_++;break;//寄存器加1 INC R5
 -                 case 14:R6++;PC_++;break;//寄存器加1 INC R6
 -                 case 15:R7++;PC_++;break;//寄存器加1 INC R7
 -                 case 16:switch16();PC_+=3;break;//直接地址位为1跳转,该位清零 JBC bit,REL
 -                 case 17://短调用子程序 ACALL ADDR11 00H
 -                         DATA[++SP_]=PC_;
 -                         DATA[++SP_]=PC_>>8;
 -                         PC_=EC[PC_+1];
 -                         break;
 -                 case 18://长调用子程序 LCALL ADDR16
 -                         PC_t=PC_+3;
 -                         DATA[++SP_]=PC_t;
 -                         DATA[++SP_]=PC_t>>8;
 -                         PSW_b=EC[PC_+1];
 -                         PCL=EC[PC_+2];
 -                         PCH=PSW_b;
 -                         break;
 -                 case 19://累加器带进位循环右移 RRC A
 -                         PSW=PSW_;
 -                         ACC=A_;
 -                         __asm RRC A
 -                         PSW_=PSW;
 -                         A_=ACC;
 -                         PC_++;
 -                         break;
 -                 case 20:A_--;PC_++;break;//累加器减1 DEC A
 -                 case 21:DATA[EC[PC_+1]]--;PC_+=2;break;//直接单元地址减1 DEC DIRECT
 -                 case 22:DATA[R0]--;PC_++;break;//间接地址单元减1 DEC @R0
 -                 case 23:DATA[R1]--;PC_++;break;//间接地址单元减1 DEC @R1
 -                 case 24:R0--;PC_++;break;//寄存器减1 DEC R0
 -                 case 25:R1--;PC_++;break;//寄存器减1 DEC R1
 -                 case 26:R2--;PC_++;break;//寄存器减1 DEC R2
 -                 case 27:R3--;PC_++;break;//寄存器减1 DEC R3
 -                 case 28:R4--;PC_++;break;//寄存器减1 DEC R4
 -                 case 29:R5--;PC_++;break;//寄存器减1 DEC R5
 -                 case 30:R6--;PC_++;break;//寄存器减1 DEC R6
 -                 case 31:R7--;PC_++;break;//寄存器减1 DEC R7
 -                 case 32:switch32();PC_+=3;break;//直接地址位为1跳转 JB BIT,REL
 -                 case 33:PC_=256+EC[PC_+1];break;//短跳转 AJMP ADDR11 01H
 -                 case 34:PC_=DATA[SP_--]<<8;PC_+=DATA[SP_--];break;//子程序返回 RET
 -                 case 35://累加器循环左移 RL A
 -                         ACC=A_;
 -                         __asm RL A
 -                         PSW_=PSW;
 -                         A_=ACC;
 -                         PC_++;
 -                         break;
 -                 case 36:A_+=EC[PC_+1];PSW_=PSW;PC_+=2;break;//立即数加到累加器 ADD A,#DATA
 -                 case 37:A_+=DATA[EC[PC_+1]];PSW_=PSW;PC_+=2;break;//直接地址单元数据加到累加器 ADD A,DIRECT
 -                 case 38:A_+=DATA[R0];PSW_=PSW;PC_++;break;//间接地址单元数据加到累加器 ADD A,@R0
 -                 case 39:A_+=DATA[R1];PSW_=PSW;PC_++;break;//间接地址单元数据加到累加器 ADD A,@R1
 -                 case 40:A_+=R0;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R0
 -                 case 41:A_+=R1;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R1
 -                 case 42:A_+=R2;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R2
 -                 case 43:A_+=R3;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R3
 -                 case 44:A_+=R4;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R4
 -                 case 45:A_+=R5;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R5
 -                 case 46:A_+=R6;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R6
 -                 case 47:A_+=R7;PSW_=PSW;PC_++;break;//寄存器内容加到累加器 ADD A,R7
 -                 case 48:switch48();PC_+=3;break;//直接地址位为0跳转 JNB BIT,REL
 -                 case 49://短调用子程序 ACALL ADDR11 01H
 -                         DATA[++SP_]=PC_;
 -                         DATA[++SP_]=PC_>>8;
 -                         PC_=256+EC[PC_+1];
 -                         break;
 -                 case 50:PC_++;break;//中断返回 RETI(不支持)
 -                 case 51://累加器带进位循环左移 RLC A
 -                         PSW=PSW_;
 -                         ACC=A_;
 -                         __asm RLC A
 -                         PSW_=PSW;
 -                         A_=ACC;
 -                         PC_++;
 -                         break;
 -                 case 52://立即数带进位加到累加器 ADDC A,#DATA
 -                         PSW_b=EC[PC_+1];
 -                         PSW=PSW_;
 -                         ACC=A_;
 -                   __asm ADDC A,0
 -                         PSW_=PSW;
 -                         A_=ACC;
 -                         PC_+=2;
 -                         break;
 -                 case 53://直接地址单元数据带进位加到累加器 ADDC A,DIRECT
 -                         A_+=DATA[EC[PC_+1]];
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_+=2;
 -                         break;
 -                 case 54://间接地址单元数据带进位加到累加器 ADDC A,@R0
 -                         A_+=DATA[R0];
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 55://间接地址单元数据带进位加到累加器 ADDC A,@R1
 -                         A_+=DATA[R1];
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 56://寄存器带进位加到累加器 ADDC A,R0
 -                         A_+=R0;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 57://寄存器带进位加到累加器 ADDC A,R1
 -                         A_+=R1;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 58://寄存器带进位加到累加器 ADDC A,R2
 -                         A_+=R2;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 59://寄存器带进位加到累加器 ADDC A,R3
 -                         A_+=R3;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 60://寄存器带进位加到累加器 ADDC A,R4
 -                         A_+=R4;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 61://寄存器带进位加到累加器 ADDC A,R5
 -                         A_+=R5;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 62://寄存器带进位加到累加器 ADDC A,R6
 -                         A_+=R6;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 63://寄存器带进位加到累加器 ADDC A,R7
 -                         A_+=R7;
 -                         PSW_b=PSW;
 -                         A_+=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 64:if(CY_)PC_+=(char)EC[PC_+1];PC_+=2;break;//进位位为1跳转 JC REL
 -                 case 65:PC_=512+EC[PC_+1];break;//短跳转 AJMP ADDR11 02H
 -                 case 66:DATA[EC[PC_+1]]|=A_;PC_+=2;break;//直接地址单元与累加器相或 ORL DIRECT,A
 -                 case 67:DATA[EC[PC_+1]]|=EC[PC_+2];PC_+=3;break;//直接地址单元与立即数相或 ORL DIRECT,#DATA
 -                 case 68:A_|=EC[PC_+1];PC_+=2;break;//累加器与立即数相或 ORL A,#DATA
 -                 case 69:A_|=DATA[EC[PC_+1]];PC_+=2;break;//累加器与直接地址单元相或 ORL A,DIRECT
 -                 case 70:A_|=DATA[R0];PC_++;break;//累加器与间接地址单元相或 ORL A,@R0
 -                 case 71:A_|=DATA[R1];PC_++;break;//累加器与间接地址单元相或 ORL A,@R1
 -                 case 72:A_|=R0;PC_++;break;//累加器与寄存器相或 ORL A,R0
 -                 case 73:A_|=R1;PC_++;break;//累加器与寄存器相或 ORL A,R1
 -                 case 74:A_|=R2;PC_++;break;//累加器与寄存器相或 ORL A,R2
 -                 case 75:A_|=R3;PC_++;break;//累加器与寄存器相或 ORL A,R3
 -                 case 76:A_|=R4;PC_++;break;//累加器与寄存器相或 ORL A,R4
 -                 case 77:A_|=R5;PC_++;break;//累加器与寄存器相或 ORL A,R5
 -                 case 78:A_|=R6;PC_++;break;//累加器与寄存器相或 ORL A,R6
 -                 case 79:A_|=R7;PC_++;break;//累加器与寄存器相或 ORL A,R7
 -                 case 80:if(!CY_)PC_+=(char)EC[PC_+1];PC_+=2;break;//进位位为0跳转 JNC REL
 -                 case 81://短调用子程序 ACALL ADDR11 02H
 -                         DATA[++SP_]=PC_;
 -                         DATA[++SP_]=PC_>>8;
 -                         PC_=512+EC[PC_+1];
 -                         break;
 -                 case 82:DATA[EC[PC_+1]]&=A_;PC_+=2;break;//直接地址单元与累加器相与 ANL DIRECT,A
 -                 case 83:DATA[EC[PC_+1]]&=EC[PC_+2];PC_+=3;break;//直接地址单元与立即数相与 ANL DIRECT,#DATA
 -                 case 84:A_&=EC[PC_+1];PC_+=2;break;//累加器与立即数相与 ANL A,#DATA
 -                 case 85:A_&=DATA[EC[PC_+1]];PC_+=2;break;//累加器与直接地址单元相与 ANL A,DIRECT
 -                 case 86:A_&=DATA[R0];PC_++;break;//累加器与间接地址单元相与 ANL A,@R0
 -                 case 87:A_&=DATA[R1];PC_++;break;//累加器与间接地址单元相与 ANL A,@R1
 -                 case 88:A_&=R0;PC_++;break;//累加器与寄存器相与 ANL A,R0
 -                 case 89:A_&=R1;PC_++;break;//累加器与寄存器相与 ANL A,R1
 -                 case 90:A_&=R2;PC_++;break;//累加器与寄存器相与 ANL A,R2
 -                 case 91:A_&=R3;PC_++;break;//累加器与寄存器相与 ANL A,R3
 -                 case 92:A_&=R4;PC_++;break;//累加器与寄存器相与 ANL A,R4
 -                 case 93:A_&=R5;PC_++;break;//累加器与寄存器相与 ANL A,R5
 -                 case 94:A_&=R6;PC_++;break;//累加器与寄存器相与 ANL A,R6
 -                 case 95:A_&=R7;PC_++;break;//累加器与寄存器相与 ANL A,R7
 -                 case 96:if(!A_)PC_+=(char)EC[PC_+1];PC_+=2;break;//累加器为0跳转 JZ REL
 -                 case 97:PC_=768+EC[PC_+1];break;//短跳转 AJMP ADDR11 03H
 -                 case 98:DATA[EC[PC_+1]]^=A_;PC_+=2;break;//直接地址单元与累加器相异或 XRL DIRECT,A
 -                 case 99:DATA[EC[PC_+1]]^=EC[PC_+2];PC_+=3;break;//直接地址单元与立即数相异或 XRL DIRECT,#DATA
 -                 case 100:A_^=EC[PC_+1];PC_+=2;break;//累加器与立即数相异或 XRL A,#DATA
 -                 case 101:A_^=DATA[EC[PC_+1]];PC_+=2;break;//累加器与直接地址单元相异或 XRL A,DIRECT
 -                 case 102:A_^=DATA[R0];PC_++;break;//累加器与间接地址单元相异或 XRL A,@R0
 -                 case 103:A_^=DATA[R1];PC_++;break;//累加器与间接地址单元相异或 XRL A,@R1
 -                 case 104:A_^=R0;PC_++;break;//累加器与寄存器相异或 XRL A,R0
 -                 case 105:A_^=R1;PC_++;break;//累加器与寄存器相异或 XRL A,R1
 -                 case 106:A_^=R2;PC_++;break;//累加器与寄存器相异或 XRL A,R2
 -                 case 107:A_^=R3;PC_++;break;//累加器与寄存器相异或 XRL A,R3
 -                 case 108:A_^=R4;PC_++;break;//累加器与寄存器相异或 XRL A,R4
 -                 case 109:A_^=R5;PC_++;break;//累加器与寄存器相异或 XRL A,R5
 -                 case 110:A_^=R6;PC_++;break;//累加器与寄存器相异或 XRL A,R6
 -                 case 111:A_^=R7;PC_++;break;//累加器与寄存器相异或 XRL A,R7
 -                 case 112:if(A_)PC_+=(char)EC[PC_+1];PC_+=2;break;//累加器非0跳转 JNZ REL
 -                 case 113://短调用子程序 ACALL ADDR11 03H
 -                         DATA[++SP_]=PC_;
 -                         DATA[++SP_]=PC_>>8;
 -                         PC_=768+EC[PC_+1];
 -                         break;
 -                 case 114:switch114();PC_+=2;break;//进位位与直接地址相或 ORL C,BIT
 -                 case 115:PC_=DPTR+A_;break;//相对于DPTR的间接跳转 JMP @A+DPTR
 -                 case 116:A_=EC[PC_+1];PC_+=2;break;//立即数送入累加器 MOV A,#DATA
 -                 case 117:switch117();PC_+=3;break;//立即数送入直接地址单元 MOV DIRECT,#DATA
 -                 case 118:DATA[R0]=EC[PC_+1];PC_+=2;break;//立即数送入间接地址单元 MOV @R0,#DATA
 -                 case 119:DATA[R1]=EC[PC_+1];PC_+=2;break;//立即数送入间接地址单元 MOV @R1,#DATA
 -                 case 120:R0=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R0,#DATA
 -                 case 121:R1=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R1,#DATA
 -                 case 122:R2=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R2,#DATA
 -                 case 123:R3=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R3,#DATA
 -                 case 124:R4=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R4,#DATA
 -                 case 125:R5=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R5,#DATA
 -                 case 126:R6=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R6,#DATA
 -                 case 127:R7=EC[PC_+1];PC_+=2;break;//立即数送入寄存器 MOV R7,#DATA
 -                 case 128:PC_+=(char)EC[PC_+1];PC_+=2;break;//相对跳转 SJMP rel
 -                 case 129:PC_=1024+EC[PC_+1];break;//短跳转 AJMP ADDR11 04H
 -                 case 130:switch130();PC_+=2;break;//进位位与直接地址位相与 ANL C,BIT
 -                 case 131:A_=EC[PC_+A_];PC_++;break;//以PC为基地址变址寻址单元中的数据送入累加器 MOVC A,@A+PC
 -                 case 132:A_/=B_;PSW_=PSW;A_=ACC;B_=B;PC_++;break;//A除以B DIV AB
 -                 case 133:DATA[EC[PC_+2]]=DATA[EC[PC_+1]];PC_+=3;break;//直接地址单元数据送入直接地址单元 MOV DIRECT,DIRECT
 -                 case 134:DATA[EC[PC_+1]]=DATA[R0];PC_+=2;break;//间接地址单元数据送入直接地址单元 MOV DIRECT,@R0
 -                 case 135:DATA[EC[PC_+1]]=DATA[R1];PC_+=2;break;//间接地址单元数据送入直接地址单元 MOV DIRECT,@R1
 -                 case 136:DATA[EC[PC_+1]]=R0;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R0
 -                 case 137:DATA[EC[PC_+1]]=R1;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R1
 -                 case 138:DATA[EC[PC_+1]]=R2;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R2
 -                 case 139:DATA[EC[PC_+1]]=R3;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R3
 -                 case 140:DATA[EC[PC_+1]]=R4;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R4
 -                 case 141:DATA[EC[PC_+1]]=R5;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R5
 -                 case 142:DATA[EC[PC_+1]]=R6;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R6
 -                 case 143:DATA[EC[PC_+1]]=R7;PC_+=2;break;//寄存器内容送入直接地址单元 MOV DIRECT,R7
 -                 case 144:DPH_=EC[PC_+1];DPL_=EC[PC_+2];PC_+=3;break;//16位立即数送入数据指针 MOV DPTR,#DATA16
 -                 case 145://短调用子程序 ACALL ADDR11 04H
 -                         DATA[++SP_]=PC_;
 -                         DATA[++SP_]=PC_>>8;
 -                         PC_=1024+EC[PC_+1];
 -                         break;
 -                 case 146:switch146();PC_+=2;break;//进位位送入直接地址位 MOV BIT,C
 -                 case 147:A_=EC[DPTR+A_];PC_++;break;//以DPTR为基地址变址寻址单元中的数据送入累加器 MOVC A,@A+DPTR
 -                 case 148://累加器带借位减立即数 SUBB A,#DATA
 -                         A_-=EC[PC_+1];
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_+=2;
 -                         break;
 -                 case 149://累加器带借位减直接地址单元内容 SUBB A,DIRECT
 -                         A_-=DATA[EC[PC_+1]];
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_+=2;
 -                         break;
 -                 case 150://累加器带借位减间接地址单元内容 SUBB A,@R0
 -                         A_-=DATA[R0];
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 151://累加器带借位减间接地址单元内容 SUBB A,@R1
 -                         A_-=DATA[R1];
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 152://累加器带借位减寄存器内容 SUBB A,R0
 -                         A_-=R0;
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 153://累加器带借位减寄存器内容 SUBB A,R1
 -                         A_-=R1;
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 154://累加器带借位减寄存器内容 SUBB A,R2
 -                         A_-=R2;
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 155://累加器带借位减寄存器内容 SUBB A,R3
 -                         A_-=R3;
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 156://累加器带借位减寄存器内容 SUBB A,R4
 -                         A_-=R4;
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 157://累加器带借位减寄存器内容 SUBB A,R5
 -                         A_-=R5;
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 158://累加器带借位减寄存器内容 SUBB A,R6
 -                         A_-=R6;
 -                         PSW_b=PSW;
 -                         A_-=(unsigned char)CY_;
 -                         PSW_=PSW_b|PSW;
 -                         PC_++;
 -                         break;
 -                 case 159://累加器带借位减寄存器内容 SUBB A,R7
 -                         A_-=R7;
 -                         PSW_b=PSW;
 
$ r9 p) S- ?  d  0 e0 N+ L/ m2 M: b 
 |   
 
 
 
 |