Gil,

I think you read the wrong PoP instruction description.  Ed used VFAEB not 
VFEEB, and for VFAE the corresponding description is (*** emphasis mine):

Proceeding from left to right, each element of the
second operand is compared for equality with ***every***
element of the third operand.

As I understand it, using VFAEB V1,V1,V0,1,8 would invert the results and allow 
the separator bytes to be "spanned" as you requested.  Bit zero of the M5 mask 
operand set to '1' will invert the comparison results.

Peter

-----Original Message-----
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Paul Gilmartin
Sent: Thursday, June 14, 2018 9:19 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Count Words?

On 2018-06-14, at 18:50:01, Robin Vowels wrote:

<Snipped>

On 2018-06-14, at 16:05:54, Ed Jaffe wrote:
> 
> Use VL to load 16 one-byte search arguments into (for example) V0 Use 
> VLL to load 16 bytes (or how ever many remain if <16) of the string 
> into (for example) V1 Use VFAEB to find the first matching byte e.g., 
> VFAEB V1,V1,V0,1 If CC=not found, adjust string pointer up by 16 and 
> remaining length down by 16 and loop back to the VLL (or exit if none 
> left) Otherwise, use VLGVG to get the matching ELE index from V1 into 
> (for example) R15 Point to matching byte in the string by adding index 
> value to the current string pointer e.g., LA R1,0(R15,1R1)
>  
I fear my assimilation of PoOps stalled around XA.  So probably ignorant 
questions:

Suppose words are separated by an arbitrary mixture of an arbitrary number of 
<TAB> and <SP>, e.g.
"    chicken            Flamingo  Ostrich     Sparrow  Turkey Wren    "
Is there a way to skip over the terminators to the first non-terminator, i.e. 
"c"?  Perhaps a "don't find" option for VFAEB?  (Something like the (No)Match 
option to Rexx VERIFY()?)

Oops!  From PoOps:
    Proceeding from left to right, the elements of the second operand are
    compared with the corresponding elements of the third operand and
    optionally with zero.
"Corresponding element" is the problem.
If the second operand is <TAB><SP><TAB><SP><TAB><SP><TAB><SP>
and the third operand is <SP><TAB><SP><TAB><SP><TAB><SP><TAB>
I believe I'll never get the desired match.  TRT seems to remain the winner.

--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

Reply via email to