条件转移类指令
发布时间:2014/6/5 21:08:53 访问次数:1539
条件转移类指令就是在满足一定的条件后进行相对转移。条件满足时转移(相当于执行一条相对转移指令),AD5310BRMZ条件不满足时则按顺序执行下面一条指令。MCS-51的条件转移指令非常丰富,包括累加器判零转移、比较转移和循环转移共3组。
指令说明:比较转移指令的功能是将第一个操作数和第二个操作数比较,如果两者相等,就顺序执行;如果不相等,就转移。比较的过程实质上是做减法,用第一个操作数做被减数,第二个操作数做减数,但不保留减法的结果,并且修改了标志位CY。如果第一个操作数大于或者等于第二个操作数,则表示够减(CY为零),否则,被减数不够减,有借位(CY为1)。
这样利用这些指令,就可以判断两数是否相等,这在很多场合是非常有用的。但有时还想知道两数比较之后哪个大,哪个小,本指令也具有这样的功能,如果两数不相等,则指令还会反映出哪个数大,哪个数小,这是用CY来实现的。例如无符号数比较大小中,如果前面的数(A中的)大,够减则CY=O;否则CY=1,因此在程序转移后再次利用CY就可判断出A中的数比data大还是小。
循环转移(减1不为O转移指令)
第一条指令是先把Rn中内容碱1并且送回;然后判断Rn的内容不为0则转移,为0则顺序执行。第二条指令是把direct中的内容减1,结果送回到direct中去。与第一条指令同样如果内容不为O则转移,为0顺序进行。
条件转移类指令就是在满足一定的条件后进行相对转移。条件满足时转移(相当于执行一条相对转移指令),AD5310BRMZ条件不满足时则按顺序执行下面一条指令。MCS-51的条件转移指令非常丰富,包括累加器判零转移、比较转移和循环转移共3组。
指令说明:比较转移指令的功能是将第一个操作数和第二个操作数比较,如果两者相等,就顺序执行;如果不相等,就转移。比较的过程实质上是做减法,用第一个操作数做被减数,第二个操作数做减数,但不保留减法的结果,并且修改了标志位CY。如果第一个操作数大于或者等于第二个操作数,则表示够减(CY为零),否则,被减数不够减,有借位(CY为1)。
这样利用这些指令,就可以判断两数是否相等,这在很多场合是非常有用的。但有时还想知道两数比较之后哪个大,哪个小,本指令也具有这样的功能,如果两数不相等,则指令还会反映出哪个数大,哪个数小,这是用CY来实现的。例如无符号数比较大小中,如果前面的数(A中的)大,够减则CY=O;否则CY=1,因此在程序转移后再次利用CY就可判断出A中的数比data大还是小。
循环转移(减1不为O转移指令)
第一条指令是先把Rn中内容碱1并且送回;然后判断Rn的内容不为0则转移,为0则顺序执行。第二条指令是把direct中的内容减1,结果送回到direct中去。与第一条指令同样如果内容不为O则转移,为0顺序进行。
上一篇:无条件绝对转移指令
上一篇:子程序调用与返回指令