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.