模块间代码的转移 调用者与被调用者在或不在同一个段内有何区别 (模块间调用的规则)

本文目录导航:

- 模块间代码的转移,调用者与被调用者在或不在同一个段内有何区别?
- plc跳转与标志指令只能在一段程序经常使用吗?
- PLC编程里的JMP指令
- 跳转指令JMP的配置是:当输入有效时,使程序流跳转到指定标号N处。操作数N的范畴是()。
模块间代码的转移,调用者与被调用者在或不在同一个段内有何区别?
其实关于跳转指令来说,在同一个段和不再同一个段没多大区别,只是编译解决生成的二进制指令不同,假设被调用者在同一个段内,可以是短跳转、近跳转、远跳转。
短跳转的操作数是8位的,近跳转的操作数是16位,短跳转、近跳转都不扭转cs寄存器的值,只扭转ip的值,然而长跳转会把指标段(被调用者所在的段)的段地址的值赋给cs寄存器,把跳转到的偏移地址给ip。
被调用者不在同一个段的话,只能用长跳转,而且要给出指标段的地址和偏移地址。
咱们知道,一个段的长度最大是64kb,假设咱们的程序大于64kb,那么就可以分两个段,用长跳转来衔接它们。
长跳转的另一好处就是可以访问别的段的一段程序,这样编程就灵敏很多了。
以上所说的也适宜call指令。
跳转指令的操作数的性质不同,也发生不同的指令,比如在短跳转指令中,假设,操作数是个标号的话那么发生的是相对位移跳转指令,假设操作数是寄存器或许是内存单元的话,间接把寄存器或内存单元中的值赋给ip,近跳转也相似。
远跳转没有这些区别,指令它只会把操作数中示意段的地址给cs,示意偏移的给ip.相对位移跳转指令时这样上班的:将以后ip的值(正在口头的指令的下一条指令的偏移地址)= 以后ip的值+jmp的操作数jmp 的操作数是在编译的时刻确定的:jmp的操作数=标号所在的偏移地址 - 以后ip的值,jmp的操作数是用补码示意的。
以上所说的只适宜实形式下的。
plc跳转与标志指令只能在一段程序经常使用吗?
-200西门子除了有经常出现的基本操作指令外,还具备丰盛的配置指令。
这些配置指令能拓宽PLC的运行范畴,增强PLC编程的灵敏性。
它可以实现更为复杂的管理程序的编写,使程序设计愈加繁难。
跳转指令就属于罕用配置指令中的一种。
跳转指令要用于较复杂程序的设计,经常使用该类指令可以用来提升程序结构,增强程序配置。
跳转指令可以使PLC编程的灵话性大大提高,它的作用就是使PLC可依据不同条件的判别,选用不同的程序段去口头程序。
1、跳转指令的格局(见图1所示)图一与跳转无关的指令有两条:跳转指令JMP和标号指令LBL。
跳转指令(JMP):跳转指令使能输入有效时,使程序跳到同程序中的指定标号N处口头。
标号指令(LBL):标号指令用来标志程序段,作为跳转指令口头时跳转到指标位置。
标志指标的操作数N为0-255的数字。
经常使用说明:(1) 跳转指令和标号指令必定配合经常使用,而且只能经常使用在同一程序块中,如主程序、同一主程序或同一个终止程序。
不能在不同的程序块中相互跳转。
(2)口头跳转后,被跳环节序段中的各元件形态为:1)Q、M、S、C等元件的位坚持跳转前的形态; 2)计数器C中止计数,以后值存储器坚持跳转前的计数值。
3)对定时器来说,在跳转时期,分辨率为1ms和10ms的定时器会直坚持跳转前的上班形态,原来上班的继续上班,到设定值后,其位的形态才会扭转,输入触点举措。
对分辨率为100ms的定时器来说,跳转时期中止上班,但不会复位,存储器里的值为跳转时的值,跳转完结后,若输入条件准许,可继续计时,但已失去了准确计时的意义,所以在跳转段里的定时器要慎用
PLC编程里的JMP指令
这是一条跳转指令。
跳转指令又称转移指令。
在程序中经常使用跳转指令后,系统可以依据对不同条件选用口头不同的程序段。
跳转指令由跳转指令JMP和标号指令LBL组成,JMP指令在梯形图中以线圈方式编程。
当管理条件满足时,口头跳转指令JMP n,程序转移到标号n指定的目的位置口头二该位置由标号指令LBL n确定。
n的范畴为0- 255。
经常使用跳转指令时需留意以下疑问。
1) JMP和LBL指令必定在同一程序段中,似乎一主程序、子程序或终止程序等。
即不能从一个程序段跳到另一个程序段。
2)口头跳转指令后,在JMP与LBL之间程序段中的计数器中止计数,其计数值及计数器位形态不变。
3)口头跳转指令后,在JMP与LBL之间程序段中的输入Q、位存储器M及顺序管理继电器S的形态不变。
4)口头跳转指令后,在JMP与LBL之间程序段中,分辨率为1 ms、10 ms的定时器坚持原来的上班形态及配置;分辨率为100 ms的定时器则中止上班,以后值坚持在跳转时的值不变。
文章评论