大型机汇编(mainframe assembler/HLASM)之代码loop篇

来源:互联网 发布:linux 拷贝进度 编辑:程序博客网 时间:2024/05/18 06:20

 

从后往前检测TMED中的每个bit是0还是1,并且根据结果从前往后给FLAGS赋值

 

         LA    R1,3       
         LA    R5,TMED+2 
         LA    R4,FLAGS
LOOPFLAG DS    0H         
         LA    R14,01     
         LA    R15,8      
LOOPBITS DS    0H         
         MVI   0(R4),C'N' 
         EX    R14,TESTBIT
         BZ    ELOOPBIT   
         MVI   0(R4),C'Y' 
ELOOPBIT DS    0H         
         SLL   R14,1      
         LA    R4,1(R4)   
         BCT   R15,LOOPBITS   每次内循环8次(byte内)
         BCTR  R5,R0      
         BCT   R1,LOOPFLAG    外循环3次(一共3个byte)

 

TMED     DS    XL3                                   B'11000101 11100011 00000001'

TESTBIT  TM    0(R5),X'00'

FLAGS    DS   24CL1                                  C'YNNNNNNN YYNNNYYY YNYNNNYY'

 

 


本文没打算讲述什么,只是loop的一个应用,代码中唯一值得留意的就是,在TM指令的机器码中,第二个字节是掩码位。

有疑问请联系QQ349106216



原创粉丝点击