您的位置:首页 > 其它

精通COBOL--11.1.2 提高部分功能段执行效率

2008-04-29 10:14 656 查看

  COBOL可调用的子程序并不一定要求由COBOL所编写。实际上,COBOL语言所调用的子程序是可以由其他语言编写的,如汇编语言、PL/1语言等等。
对于某些功能,使用其他语言编写往往执行效率会更高。例如,在大型机环境下使用S/390汇编语言编写的程序,通常运行效率就比使用COBOL编写的要高。但是,汇编语言编写起来是不如COBOL方便的。因此,通常可以以COBOL编写主程序,而将其中经常使用的部分功能段使用汇编语言编写。这样,既不会过于增大开发难度,也能从整体上提高程序的运行效率。
例如,下面这段COBOL程序便调用了汇编程序。其中所调用的程序名为ASMPGM,传递的参数依次为DATA1、DATA2、DATA3。该COBOL程序代码如下。
IDENTIFICATION DIVISION.
PROGRAM-ID CALL-ASM-PROG.
AUTHER XXX.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING STORAGE SECTION.
77 DATA1 PIC X.
77 DATA2 PIC X.
77 DATA3 PIC X.
……
*
PROCEDURE DIVISION.
……
CALL ‘ASMPGM’ USING DATA1
DATA2
DATA3.
……
STOP RUN.
所调用的汇编程序通常可以如下。
ASMPGM CSECT
STM R14,R12,12(R13)
BALR R12,R0
USING *,R12
LM R2,R4,0(R1)
……
BCR B’1111’,14
DC A(PARM1)
DC A(PARM2)
DC X’80’,AL3(LASTPARM)
END ASMPGM
该汇编程序中,R2、R3、R4这3个寄存器将分别与COBOL中的3个参数相对应。其中R2与DATA1相对应,R3与DATA2相对应,R4与DATA3相对应。
此处主要是为了说明通过COBOL可以调用其他语言编写的子程序,并以此提高程序整体执行效率。关于大型机上的汇编语言将在后面的章节中进行讲解,这里不必深究。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: