天天看点

大型机汇编(mainframe assembler/HLASM)之S0C7错误

MAIN CSECT

     STM 14,12,12(13)

     BASR 12,0

     USING *,12

     ST 13,SAVE+4

     LA 13,SAVE

START EQU *

     MP  P1,P2

EXIT EQU *

     L 13,SAVE+4

     LM 14,12,12(13)

     LA 15,0

     BR 14

P1   DC  PL4'123'

P2   DC  PL3'2' 

SAVE   DS  18F

运行此程序会返回S0C7错误,但是P1,P2很明显都是合法的正确数据。。。

问题出在MP这个指令上, 因为P1=X'0000123C',其最前面有两个字节的0,所以它就要求P2的长度最多不能超过两个字节,依此来保证积不会出现溢出。

另外还有一个程序也报S0C7错误,能看出来吗?

MAIN     CSECT                                    

         SAVE  (14,12),,'IHATEPGM&SYSDATE&SYSTIME'

         USING *,12                               

         LR    12,15                              

         ST    13,SAVE+4                          

         LA    13,SAVE                            

START    EQU   *                                  

         AP  P1,P2                                

EXIT     EQU   *                                  

         L     13,SAVE+4                          

         LM    14,12,12(13)                       

         LA    15,0                               

         BR    14                                 

SAVE     DS    18F                                

P1       DS   P'1'                                

P2       DS   P'2'                                

         END MAIN

有异议请联系QQ349106216