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。
我正在尝试将两个数字相加并减去两个数字,但是当我编译我的代码时,它显示 '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。