找回密码
 注册
查看: 297|回复: 2
打印 上一主题 下一主题

C51单片机指令解析

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-22 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

  K/ T2 Y% I( u- F6 e& J5 c; ?* g单片机源程序如下:
  • #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 0C_++;break;//空指令 NOP
  •                 case 1C_=EC[PC_+1];break;//短跳转 AJMP ADDR11 00H
  •                 case 2SW_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 5ATA[EC[PC_+1]]++;PC_+=2;break;//直接地址单元加1 INC DIRECT
  •                 case 6ATA[R0]++;PC_++;break;//间接地址单元加1 INC @R0
  •                 case 7ATA[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;
    8 t* x0 [* r. o1 u4 o( d# E

3 r+ @2 {* h0 k

该用户从未签到

2#
发表于 2022-6-22 10:53 | 只看该作者
看一看,||ヽ(* ̄▽ ̄*)ノミ|Ю

该用户从未签到

3#
发表于 2022-6-22 14:02 | 只看该作者
看一看,||ヽ(* ̄▽ ̄*)ノミ|Ю
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-5-26 05:00 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表