单片机指令系统
首页 > 硬件电路 > 单片机指令系统     2018-11-14

指令寻址方式

MCS-51设有7种寻址方式:

存放器寻址 直接寻址 存放器间接寻址 当即寻址 基址存放器加变址存放器间接寻址 相对于寻址 位寻址 一、数据传送类指令

说明:

#data:8位当即数 #data16:16位当即数 Ri:工作存放器中的存放器R0或R1 Rn:工作存放器中的存放器R0、R1…R7之一, 常用符号 direct:片内RAM或SFR的地址(8位) @:间接寻址存放器 Bit:片内RAM或SFR的位地址 addr11:11位目的地址 addr16:16位目的地址 rel: 补码情势的8位地址偏移量。偏移范围为-128~127 /:位操作指令中,该位求反后参预操作,不影响该位 direct:片内RAM的直接地址或存放器 (X):相应地址单元中的内容 →:箭头左侧的内容送入箭头右边的单元内 指令格式 功能简述 字节数 周期 MOV Rn,A 累加器送存放器 1 1 MOV A,@Ri 内部RAM单元送累加器 1 1 MOV @Ri,A 累加器送内部RAM单元 1 1 MOV A,#data 当即数送累加器 2 1 MOV A,direct 直接寻址单元送累加器 2 1 MOV direct,A 累加器送直接寻址单元 2 1 MOV Rn,#data 当即数送存放器 2 1 MOV direct,#data 当即数送直接寻址单元 3 2 MOV @Ri,#data 当即数送内部RAM单元 2 1 MOV direct,Rn 存放器送直接寻址单元 2 2 MOV Rn,direct 直接寻址单元送存放器 2 2 MOV direct,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR,#data16 16位当即数送数据指针 3 2 MOVX A,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A,Rn 累加器与存放器交流 1 1 XCH A,@Ri 累加器与内部RAM单元交流 1 1 XCHD A,direct 累加器与直接寻址单元交流 2 1 XCHD A,@Ri 累加器与内部RAM单元低4位交流 1 1 SWAP A 累加器高4位与低4位交流 1 1 POP direct 栈顶弹出指令直接寻址单元 2 2 PUSH direct 直接寻址单元压入栈顶 2 2 二、算术运算类指令 指令格式 功能简述 字节数 周期 ADD A,@Ri 累加器加内部RAM单元 1 1 ADD A,direct 累加器加直接寻址单元 2 1 ADD A,#data 累加器加当即数 2 1 ADDC A,Rn 累加器加存放器和进位标志 1 1 ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A,#data 累加器加当即数和进位标志 2 1 ADDC A,direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1 INC Rn 存放器加1 1 1 INC direct 直接寻址单元加1 2 1 INC @Ri 内部RAM单元加1 1 1 INC DPTR 数据指针加1 1 2 DA A 十进制调剂 1 1 SUBB A,Rn 累加器减存放器和进位标志 1 1 SUBB A,@Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A,#data 累加器减当即数和进位标志 2 1 SUBB A,direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1 DEC Rn 存放器减1 1 1 DEC @Ri 内部RAM单元减1 1 1 DEC direct 直接寻址单元减1 2 1 MUL AB 累加器乘存放器B 1 4 DIV AB 累加器除以存放器B 1 4 三、逻辑运算类指令 指令格式 功能简述 字节数 周期 ANL A,@Ri 累加器与内部RAM单元 1 1 ANL A,#data 累加器与当即数 2 1 ANL A,direct 累加器与直接寻址单元 2 1 ANL direct,A 直接寻址单元与累加器 2 1 ANL direct,#data 直接寻址单元与当即数 3 1 ORL A,Rn 累加器或存放器 1 1 ORL A,@Ri 累加器或内部RAM单元 1 1 ORL A,#data 累加器或当即数 2 1 ORL A,direct 累加器或直接寻址单元 2 1 ORL direct,A 直接寻址单元或累加器 2 1 ORL direct,#data 直接寻址单元或当即数 3 1 XRL A,Rn 累加器异或存放器 1 1 XRL A,@Ri 累加器异或内部RAM单元 1 1 XRL A,#data 累加器异或当即数 2 1 XRL A,direct 累加器异或直接寻址单元 2 1 XRL direct,A 直接寻址单元异或累加器 2 1 XRL direct,#data 直接寻址单元异或当即数 3 2 RL A 累加器左重复移位 1 1 RLC A 累加器连进位标志左重复移位 1 1 RR A 累加器右重复移位 1 1 RRC A 累加器连进位标志右重复移位 1 1 CPL A 累加器取反 1 1 CLR A 累加器清零 1 1 四、节制转移类指令类 指令格式 功能简述 字节数 周期 AJMP addr11 2KB范围内绝对于转移 2 2 LCALL addr16 2KB范围内长调用 3 2 LJMP addr16 2KB范围内长转移 3 2 SJMP rel 相对于短转移 2 2 JMP @A+DPTR 相对于长转移 1 2 RET   子程序返回 1 2 RET1   中止返回 1 2 JZ rel 累加器为零转移 2 2 JNZ rel 累加器非零转移 2 2 CJNE A,#data,rel 累加器与当即数不等转移 3 2 CJNE A,direct,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data,rel 存放器与当即数不等转移 3 2 CJNE @Ri,#data,rel RAM单元与当即数不等转移 3 2 DJNZ Rn,rel 存放器减1不为零转移 2 2 DJNZ direct,rel 直接寻址单元减1不为零转移 3 2 NOP   空操作 1 1 五、布尔操作类指令 指令格式 功能简述 字节数 周期 MOV bit,C C送直接寻址位 2 1 CLR C C清零 1 1 CLR bit 直接寻址位清零 2 1 CPL C C取反 1 1 CPL bit 直接寻址位取反 2 1 SETB C C置位 1 1 SETB bit 直接寻址位置位 2 1 ANL C,bit C逻辑与直接寻址位 2 2 ANL C,/bit C逻辑与直接寻址位的反 2 2 ORL C,bit C逻辑或直接寻址位 2 2 ORL C,/bit C逻辑或直接寻址位的反 2 2 JC rel C为1转移 2 2 JNC rel C为零转移 2 2 JB bit,rel 直接寻址位为1转移 3 2 JNB bit,rel 直接寻址为0转移 3 2 JBC bit,rel 直接寻址位为1转移并清该位 3 2

 

© Copyright 吾爱微电子 | 琥珀川