So 

ASCII_Left_Brace EQU A'['
       MVI   TARGET,ASCII_Left_Brace 

does not work either?

Charles


-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]]
On Behalf Of Paul Gilmartin
Sent: Tuesday, October 17, 2017 9:53 AM
To: [email protected]
Subject: Re: Detection of Compile-Time Self-Modifying Code

On: Mon, 9 Oct 2017 21:21:52 -0700
Ed Jaffe wrote:

> We recently terminated a reckless/destructive/rogue/cowboy programmer 
> who would routinely and subversively insert "land mines" into our code 
> without anyone knowing. Someone found another one this week:

> |        DO UNTIL=NO                   Until all chars processed
> |  * Until we break free from OPTABLE(YOP), the ORG game must be used
> |          TROT  R14,R2                  Convert to hex
> |          ORG   *-2                     ORG back to set M3 field
> |          DC    X'10'                   M3 = 1 to suppress stopper
> |          ORG   ,                       ORG back
> |        ENDDO ,                       EndDo TROT

> ..., he chose to alter the instruction via ORG/DC.
> (IMHO, ORGing back to change an instruction is a form of 
> self-modifying code, which we don't allow.)

* There's one place I'm tempted to do this.  I can
         MVI   TARGET,C'['

* But this causes a syntax error:
         MVI   TARGET,CA'['
* ... because HLASM is too pigheaded to accept C'[' as s
* self-defining term.  The rationale given is that this is
* subject to code page ambiguity,  Absurd because the code
* for '[' is more stable among ASCII pages than among EBCDIC.

* So, I could:
         MVI   TARGET,X'5B'    Ugh!

* Or:    (Sigh!)
         MVC   TARGET(1),=CA'['
* ... but isn't this subject to the same code page ambiguity?

* Or:    (Sigh!)
         MVI   TARGET,C'['
         ORG   *-3
         DC    CA'['
         ORG
         ORG

I hate EBCDIC!

-- gil

Reply via email to