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