1

在 z/OS HLASM 中,我想知道是否有办法使通过 EQU 指令定义的符号“不相等”。例如:

MyValue  EQU 999
...
         LHI R5,MyValue
...
MyValue  UNEQU     <===== or something that returns MyValue to the undefined state for the next statement in the assembly

我想这在概念上类似于使用 USING 来“范围”寄存器和 DSECT 之间的关系的 DROP,但在这种情况下,这意味着“这个符号仅在 EQU 和 'unEQU 之间的范围内有效’。”

谢谢,斯科特

4

1 回答 1

3

EQU创建一个符号,并在此定义它的生命。它不像#defineC 中的编译指示。

IBM 的 HLASM 参考手册和EQU 指令

本质上,您正在创建一个符号,它已输入且无法删除。手册没有具体说明这一点,但考虑到一旦使用 EQU 定义了符号,它也无法更改。

对于笑容,我尝试了一些变化,这是尝试重新定义符号 ABC 的结果

  Active Usings: None                                                
  Loc  Object Code    Addr1 Addr2  Stmt   Source Statement           
000000                00000 00000     1 EQUTEST CSECT                
                      00001           2 ABC EQU 1                    
                      00002           3 ABC EQU 2                    
** ASMA043E Previously defined symbol - ABC                          
** ASMA435I Record 3 in USER1.TEST.SOURCE(EQUTEST) on volume: T70502 
于 2020-03-11T23:59:32.980 回答