• 三种例行程序(procdures,function,traps)的使用


    一、列型程序的种类

    例行程序有三种:Procedures, Functions 和Traps

    Procedure没有返回值,可用指令直接调用

    Function有特定类型的返回值,必须通过表达式调用

    Trap例行程序提供处理中断的方法。Trap例行 程序和某个特定中断连接,一旦中断条件满足,将被自动执行。Trap例行程序不能在程序中直接调用。

    二、例行程序范围

    例行程序范围是指例行程序可被调用的范围。

    例行程序的声明前带有 Local 标识,则该例行程序可在所属模块内调用,否则为Global。

    在同一模块中,例行程序不能与其他例行程序和数据同名

    在不同模块中, Global 例行程序不能与模块、另一个 Global 例行程序, Global 数据同名

    例行程序范围的使用原则如下:

    Global 例行程序可以包含在任何模块内

    Local 例行程序只能在其所属的模块内被调用

    在同一范围内,Local 例行程序隐含所有同名的Global 例行程序和数据

    在同一范围内,例行程序隐含所有同名的指令和预定义例行程序及数据

    三、列型程序数据

    在调用带参数的例行程序时,必须提供相应实参。

    例行程序的参数有四种存取模式:

    INPUT-通常例行程序参数被设为该模式并作为例行程序数据来处理。在例行程序内改变该 变量对相应自变量没有影响。

    INOUT-如果例行程序参数被设为该模式,则相应的自变量必须是可被例行程序修改的 VAR 或 RS数据

    VAR -如果例行程序参数被设为该模式,则相应的自变量必须是可被例行程序修改的

    VAR数据.

    PERS-如果例行程序参数被设为该模式,则相应的自变量必须是可被例行程序修改的PERS数据

    可选参数:一个例行程序参数可以被设置为可选参数,并在参数前带有“”标识, 用例行程序时,该参数可以缺省

    可选参数在调用例行程序时缺省,则在程序中不被引用,这意味着该参数在使用之前要先检测是否缺省.

    四、列型程序声明

    一个例行程序包含例行程序声明(包括参数)、数据、程序体、一个backward handler(指针对procedure)和一个error handler。例行程序的声明不能嵌套。

    五、程序列型Procedure

    Procedure的声明:

    举例如下:

    Procedure的终止:

    Procedure可以通过return指令终止运行,也可以通过例行程序的结束标识(ENDPROC、BACKWARD、ERROR)终止运行

    Procedure的调用:

    Procedure的调用在示教器上是通过指令ProcCall来完成的。在调用带有参数的例行程序时,强制参数必须指定,而且参数的顺序要正确;可选参数可以缺省。

    六、列行程序--Function

    Function的声明:

    举例如下:

    Function的终止:

    Function 必须通return指令终止运行, return指令返回的数据类型必须与Function的数据类型一致。

    Function的调用:

    Function必须通过表达式来完成调用,如赋值指令,不能通过 ProcCall来完成的。在调用带有参数的Function 时,强制参数必须指定,而且参数的顺序要正确;可选参数可以缺省。

    七、列行程序--Trap

    Trap 的声明:

    举例如下:

    Trap 的终止:

    Trap可以通过return指令终止运行,也可以通过例行程序的结束标(ENDTRAP、ERROR)终止运行。然后在中断触发点继续执行。

    Trap的调用:

    Trap例行程序提供了处理中断的方法。一个中断例行程序必须通过CONNECT指令与某个特定的中断连接。一旦中断触发,控制会立即转移到相应的Trap例行程序;如果中断触发,但是没有相关联的Trap例行程序,将被视为致命错误,比如程序立即停止运行

  • 相关阅读:
    Eclipse运行单个Junit 单元测试
    梯形法求定积分(一)设计梯形法求积分的类模板,梯形法
    写一个顺序表模板,包括顺序表的基本功能,例如查找,插
    对于静态成员函数和静态成员变量的练习
    梯形法求定积分(二)设计一个函数模板,独立的非成员函
    各位高手帮我看看这个清屏程序
    对于静态成员函数和静态成员变量的练习
    二分法的递归算法和迭代算法,算法作为有序表模板类的成
    梯形法求定积分(一)设计梯形法求积分的类模板,梯形法
    二分法的递归算法和迭代算法,算法作为有序表模板类的成
  • 原文地址:https://www.cnblogs.com/csflyw/p/11707644.html
Copyright © 2020-2023  润新知