1.跳转与标签指令
当没有执行跳转指令时,各个程序段按从上到下的先后顺序执行,这种执行方式称为线性扫描。跳转指令中止程序的线性扫描,将跳转到指令中的地址标签所在的目的地址。跳转时不执行跳转指令与标号之间的程序,跳到目的地址后,程序继续接线性扫描的方式顺序执行。跳转指令可以往前跳,也可以往后跳。
只能在同一个代码块内跳转,即跳转指令与对应的跳转目的地址应在同一个代码块内。在一个块内,同一个跳转目的地址只能出现一次。
如果跳转条件满足(图5.1 中M2.5的常开触点闭合),监控JMP(Jump,为1时块中跳转)指令的线圈通电(跳转线圈为绿色),跳转被执行,将跳转到指令给出的标签W1234处,执行标签之后的第一条指令。若程序段的指令被跳过没有被执行,这些程序段的梯形图为灰色。标签在程序段的开始处,标签的第一个字符必须是字母,其余的可以是字母、数字和下划线。如果跳转条件不满足,将继续执行下一个程序段的程序。
(www.xing528.com)
图5.1 条件跳转指令
JMP(为0时块中跳转)指令的线圈断电时,将跳转到指令给出的标签处,执行标签之后的第一条指令。
2.返回指令RET
RET指令(见图5.1)的线圈通电时,将停止执行当前的块,不再执行该指令后面的指令,返回调用它的块后,执行调用指令之后的指令。RET指令的线圈断电时,将继续执行它下面的指令。RET线圈的上面是块的返回值,数据类型为Bool。如果当前的块是OB,返回值被忽略。如果当前的块是FC或FB,则返回值作为FC或FB的ENO的值传送给调用它的块。
一般情况并不需要在块结束时使用RET指令来结束块,操作系统将会自动地完成这一任务。RET指令用来有条件地结束块,一个块可以使用多条RET指令。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。