Hi Dan,

I've long been aware that IBM moved the second byte of extended opcodes
from the second byte to the last byte of the instruction for that very
reason.

And no - I've never used it. I'd probably have coded a test and a branch
to be able to code the correct instruction so as to have clearer code.

The 'worst' I ever did was an EX of an SVC where the SVC number had
to be obtained from a PARMLIB member.

The worst I ever saw (not my code!) was an XOR to flip an AH to a SH
and vice versa in a program that printed a report across two columns.

Kind regards,
Abe
===


On 02/08/2025 06:56, Keith Moe wrote:
> I have to hide a store CPU ID instruction in my pre-retirement days.
>
> Keith
>
> Sent from an iPhone
>
>> On Aug 1, 2025, at 23:34, Dan Greiner <dan_grei...@att.net> wrote:
>>
>> As is well known to subscribers of the Assembler List, the EXECUTE 
>> instruction (EX) – and the (relatively) new variant of EXECUTE RELATIVE LONG 
>> (EXRL) – provide an extremely powerful means of altering the behavior of a 
>> target instruction by ORing the contents of a the rightmost bits of the 
>> first operand of the execute-type instruction into bits 8-15 of the target 
>> instruction. Common uses include modifying the length(s) of an SS-format 
>> instruction, the register(s), mask, or immediate field of RR, RX, SI, and 
>> many other formats of instructions (it is also sufficiently complex that it 
>> drives CPU designers slightly nuts).
>>
>> One reason an execute-type instruction is particularly tricky is that 
>> certain instruction formats contain part of the operation code in bits 8-15, 
>> thus the actual target instruction executed may not be that which appears in 
>> the memory. This can occur when the target instruction format is IE, RI, 
>> RIL, RRD, RRE, RRF, S, SIL, SSE, and SSF.
>>
>> My question is (aside from IBM diagnostics) does anybody actually exploit 
>> this sort of chicanery/guile/subterfuge in their code?

Reply via email to