MCS指令系统.ppt
文本预览下载声明
逻辑运算类指令 逻辑运算类指令共有24条,包括与、或、异或、清零、求反及移位指令。当目的操作数为累加器A时会影响奇偶标志位P,带进位的移位指令会影响C,除此之外,逻辑运算类指令不影响程序状态PSW。 一、与(ANL)、或(ORL)、异或(XRL)指令 与指令、或指令、异或指令各有相对应的6条。 1、? 与指令 与指令常用于使操作数的某些位(与0相与)清零而使另外的一些位(与1相与)保持不变。 ANL A,Ri; A←A∧Ri, i=0,1,……,7 ANL A,@Rj; A←A∧(Rj), j=0,1。 ANL A,direct; A←A∧(direct) ANL direct, A; (direct)←(direct)∧A ANL A,#data; A←A∧tata ANL direct, #data; (direct)←(direct)∧A 2、或指令 或指令用于使操作数的某些位置1(与1相或)而另一些位保持不变(与0相或)。 ORL A,Ri; A←AVRi,i=0,1,2, ……,7 ORL A,@Rj; A←AV(Rj), j=0,1 ORL A,direct; A←AV(direct) ORL direct,A; (direct)←(direct)VA ORL A,#data; A←AV data ORL direct, #data; (direct) ← (direct)∨data ? 3、异或指令 异或指令可使操作数的某些位按位取反(与1异或)而使其它位保持不变(与0异或)。 XRL A,Ri; A ←A⊕Ri,i=0,1,2, ……,7 XRL A,@Rj; A←A⊕(Rj),j=0,1 XRL A,direct; A← A⊕(direct) XRL direct,A;(direct) ←(direct) ⊕A XRL A,#data; A←A⊕data XRL direct,#data; (direct) ←(direct) ⊕data 二、累加器A清零与取反指令 MCS-51系列单片机的指令系统中专门对累加器A设置了清零和取反指令: CPL A; 累加器内容取反后→A CLR A; 将累加器清零。 三、移位指令 移位指令共有4条,均以累加器A的内容为操作数,可实现累加器A的内容向左或向右环移1位,带进位位向左或向右环移1位。 1、累加器内容向左环移1位 RL A ? 2、累加器A内容向右环移1位 RR A ? 3、累加器A内容带进位位向左环移1位 RLC A ? ? 4、累加器A内容带进位向右环移1位 RRC A c c 程序转移类指令 控制程序转移指令又有绝对转移与相对转移指令之分,所谓绝对转移,是指指令中给出的是直接地址(addre16或addr11),转移指令执行后,程序转移到指令中给出的直接地址处开始执行;而相对转移指的是指令中给出的相对地址是1个带符号的用补码表示的8位的偏移量(rel),其转移的范围为当前地址-128 ~ +127,转移指令执行时,首先要根据当前的PC值和位移量计算转移的目的地址,然后从目的地址处开始执行,位移量为负时向小地址端转移,位移量为正时向大地址端转移。条件转移类指令均属于相对转移指令。 一、无条件转移指令 长转移指令 LJMP addr16 指令执行的操作为 PC←PC+3 PC←addr16 指令执行后将从addr16处开始执行指令 转移的范围为216,即64KB地址空间 绝对转移指令 AJMP addr11指令执行的操作为 PC←PC+2 PC10~0←addr11 指令执行后用指令中的11位地址取代PC计数器的低11位,PC的高5位不变,从新的PC处开始执行指令
显示全部