Having thought some more:
DO WHILE=(TROT,R14,R2,1,NZ)
  IF 4
     <fix the stop character>
  ENDIF
ENDDO


-----Original Message-----
From: Pieter Wiid [mailto:[email protected]]
Sent: 12 October 2017 15:02
To: 'IBM Mainframe Assembler List'
Subject: RE: Rehabilitated TROT Routine (Was: Detection of Compile-Time 
Self-Modifying Code)

Another point, having re-read PoOP:
CC = 1 indicates "cpu-determined number of bytes processed" -- which could be 
as few a ONE.
Therefore, to cater for the (remote) possibility that the "compare" (cond 4) 
exit could be triggered, the correct code would be DO WHILE=(TROT,R14,R2,1,NZ) 
ENDDO

-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]] On 
Behalf Of Rob van der Heij
Sent: 12 October 2017 08:35
To: [email protected]
Subject: Re: Rehabilitated TROT Routine (Was: Detection of Compile-Time 
Self-Modifying Code)

On 12 October 2017 at 08:03, Pieter Wiid <[email protected]> wrote:

> Correction:
>
> DO    WHILE,TROT,R14,R2,B'0001',1
> ENDDO
>
>
Constructs where evaluation of the condition has a side effect (or completely 
relies on the side effect) are often more a convenience to the writer than to 
the reader.
When working in a language that encourages it, I try to restrain myself to 
common constructs like testing a null pointer with the assignment. There's 
something to say for languages where it's left to the compiler to optimize that.

Rob


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

Reply via email to