John Small wrote:
> On Wed, 22 Mar 2006 03:40:58 UTC, bo774@[EMAIL PROTECTED]
(Kelly
> Bert Manning) wrote:
>>does that end up unpacking a single byte at the specified displacement?
>>PARM5D DS 0H
>> BCTR R14,0 R14 = HEX LTH
>> EX R14,PARM5EX PACK WAIT TIME
(snip)
>>PARM5EX PACK DWORD+6(2),0(0,R15) USE 1ST 2 BYTES ONLY
> R14 gets ORed with the second byte of the assembled PACK instruction.
> As assembled this 2nd byte would be X'10', the first nibble being the
> "length - 1" of the target and the second nibble the "length - 1" of
> the source.
> If R14 has a value of 2 then the effective length of the source is 3
> and the ORed second byte is X'12'. And 3 characters will fit exactly
> into 2-byte packed field.
But there is BCTR so R14 should be 1 when it gets to the EX.
The assembler assembles one less than the length specified, unless it
is zero in which case it assembles zero. BCTR is often used to subtract
one from a length before an EX, though it doesn't help much for the
high nybble length.
-- glen


|