在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我认为这在概念上类似于在使用“作用域”寄存器和DSECT之间的关系之后的删除,但在这种情况下,它将意味着“此符号仅在EQU和‘unEQU’之间的作用域内有效。”
谢谢,斯科特
发布于 2020-03-12 07:59:33
EQU创建了一个符号,一旦定义了它,它就会终生存在。它不像C中的#define杂注。
IBM和EQU Instruction参考手册
从本质上讲,你是在创建一个符号,它是输入的,不能被移除。手册没有明确指出这一点,但鉴于符号一旦使用EQU定义,它也不能更改。
对于grins,我尝试了一些变体,这是尝试重新定义符号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 https://stackoverflow.com/questions/60636426
复制相似问题