大型机汇编(mainframe assembler/HLASM)之代码精简高效

下面是写于上个世纪的一段代码,本人感觉写得非常好,现在与大家一起分享共同研究。

虽然现在的编程风格都不提倡用*来代替当前地址了,但这种简洁高效的编程思想及注释的详尽,还是可以借鉴的。

代码的功能注释中解读的非常详细。

 

POPBKREC DS   0H                                                        29200000
*---------------------------------------------------------------------* 29210000
*   SUBROUTINE TO 'POP' AND FREE MOST RECENT BACKOUT REC              * 29220000
*   AT ENTRY  - R14 RETURN ADDRESS                                    * 29230000
*   AT EXIT   CC IS ZERO IF LAST RECORD                                 29240000
*   TO INVOKE:                                                          29250000
*        BAL R14,POPBKREC                                               29260000
*   TO FREE ENTIRE CHAIN:                                               29270000
*        BAL R14,POPBKREC                                               29280000
*        BNZ *-4                                                        29290000
*---------------------------------------------------------------------* 29300000
         ICM   R2,15,WKACTLST   GET ADDRESS OF CURRENT RECORD           29310000
         BZR   R14           EXIT WITH Z CONDITION IF NO RECORD         29320000
         ST    R14,WKPOBKRT  SAVE RETURN ADDRESS                        29330000
         USING BKOUTREC,R2                                              29340000
         MVC   WKACTLST,BKOPRERA                                        29350000
    EXEC CICS FREEMAIN DATA(0(R2))                                      29360000
                                                                        29380000
         LTR   R2,R2                                                    29390000
         L     R14,WKPOBKRT  GET  RETURN ADDRESS                        29400000
         BR    R14                                                      29410000
         DROP  R2                                                       29420000

上面代码提到的CHAIN中的每个ITEM定义如下:

 BKOUTREC DSECT                                                          06910000
BKOPRERA DS    A             PREVIOUS RECORD ADDRESS                    06920000
BKDDPROG DS    CL8           PROGRAM TO INVOKE                          06930000
BKACTC   DS    H             THIS ACTION COUNT NUMBER                   06940000
BKDDTYPR DS    C                       CURRENTN PROGRAM TYPE            06950000

有疑问请联系QQ349106216

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值