z/OS 上的 HLASM 发出有关无效操作码的错误

HLASM on z/OS Issues errors about Invalid OpCode

我正在尝试将两个数字相加并减去两个数字,但是当我编译我的代码时,它显示 'invalid op-code'(我正在使用 assist (IBM))

MAIN               CSECT
                   USING MAIN,15
->invalid op-code  NUM1 DC F'67'
->invalid op-code  NUM2 DC F'203'
                   L    0,NUM1
                   L    1,NUM2
                   AR   0,1
                   L    2,NUM1
                   L    3,NUM2
                   SR   2,3
                   XDUMP
                   END MAIN

您已将数据放在汇编器期望指令所在的位置。您需要找出如何指定数据或文字区域并将数据放在那里。或者重写代码以使用立即类型数据,其中值在 itext 中。

几件事。首先,数据项的放置很重要,因为它将与代码列表合并。与自动组织数据类型声明的高级语言不同。

其次,您声明的数据项不正确。名称应从第 1 列开始,接下来是数据类型 DC,然后是数据。这将简单地包含与其他代码内联的数据,这将导致您的程序因异常终止 S0C1 而失败。

这是声明数据的建议方法

Columns    
0        1         2         3         4
1234567890123456789012345678901234567890

MAIN     CSECT  
         USING MAIN,15  
         L    0,NUM1
         L    1,NUM2
         AR   0,1
         L    2,NUM1
         L    3,NUM2
         SR   2,3
         XDUMP
NUM1     DC   F'67'
NUM2     DC   F'203'
         END  MAIN

将数据移出代码路径并将其名称放在右列表明您的数据标签不是 op-code。