True; make that AL2 except where HW alignment is required.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר

________________________________________
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf 
of g...@altiboxmail.no <g...@altiboxmail.no>
Sent: Friday, June 7, 2024 12:48 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: BXLE usage assistance

Note that an Y type without explicit length specified will have halfword 
alignment, so there may by a pad byte between an entry string and the next 
length field.
That will make it more complicated (but not impossible) to advance to the next 
entry based on the length fields.

Gunnar

-----Original Message-----
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf 
Of Seymour J Metz
Sent: Friday, June 7, 2024 6:24 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Fw: BXLE usage assistance

Metz's Law: You may be good at arithmetic but the assembler is better: let it 
do the calculations.

         LA    R9,TEND
         ...
TABLE1   DS    0F
         DC    Y(TLEN)
         DC    Y(L'E1)
E1       DC    CL14'AAAAAAAAAAAAAA'
         DC    Y(L'E2)
E2       DC    CL15'BBBBBBBBBBBBBBB'
         ...
TEND     EQU   *-1
TLEN     EQU   *-TABLE1

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר
________________________________________
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf 
of g...@altiboxmail.no <g...@altiboxmail.no>
Sent: Friday, June 7, 2024 12:02 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: BXLE usage assistance

Note that
         LA    R9,TABLE1+2             ADDRESS OF BEGINNING OF TABLE
         AH    R9,TABLE1               CALC ADDR OF END OF TABLE
will not establish the end of table suitable for the BXLE instruction.

The table coded in the example below has a wrong total length (XL2'008F'), you 
have forgotten to include the elements length fields.
Also the calculated end of table must be at least 1 byte before the end, 
otherwise BXLE will not stop at the end (as BXL would have done, but that 
instruction doesn't exist).

It is essential that a correct compare value for BXLE is established, otherwise 
it may not work as intended when the search is for an entry not present in the 
table.

Gunnar

-----Original Message-----
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf 
Of Mark Young
Sent: Tuesday, June 4, 2024 7:37 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: BXLE usage assistance

Thanks for all the replies.  See the code sample below.  I'm getting stuck 
trying to get the length for the next table entry into R8 so the BXLE 
instruction loop the correct length.  Let me know if I'm on the correct path, 
or I'm in never never land.   Also, the --->>>          <<<--- is where I think 
I'm getting stuck.

TESTBXLE CSECT ,
TESTBXLE AMODE 31
TESTBXLE RMODE ANY
         SAVE  (14,12),,TESTBXLE*&SYSDATE*&SYSTIME
         BALR  R12,0                   R12 - BASE REGISTER
         USING *,R12                   ESTABLISH ADDRESSABILITY
         ST    R13,SAVEAREA+4          SAVEAREA
         LA    R13,SAVEAREA            POINTERS
*
CHKOPTS1 LA    R7,TABLE1+4             ADDRESS OF FIRST ELEMENT
         LH    R8,TABLE1+2             LENGTH OF TABLE ENTRY
         LA    R9,TABLE1+2             ADDRESS OF BEGINNING OF TABLE
         AH    R9,TABLE1               CALC ADDR OF END OF TABLE
LOOP1    CLC   0(9,R7),=C'FFFFFFFFF'
         BE    FOUND                   ENTRY FOUND = RC=0
--->>>   LH    R8,0(2,R7)  <<<---      POINT TO LENGTH OF NEXT ENTRY
         BXLE  R7,R8,LOOP1             LOOPING UNTIL OPT FOUND
         B     NOTFND                  ENRTY NOT FOUND ? RC=8
*
FOUND    L     R13,SAVEAREA+4
         RETURN (14,12),RC=0
*
NOTFND   L     R13,SAVEAREA+4
         RETURN (14,12),RC=8
*
         PRINT NOGEN
         YREGS
SAVEAREA DS    18F
TABLE1   DS    0F
         DC    XL2'008F'
         DC    XL2'000E',CL14'AAAAAAAAAAAAAA'
         DC    XL2'000F',CL15'BBBBBBBBBBBBBBB'
         DC    XL2'0011',CL17'CCCCCCCCCCCCCCCCC'
         DC    XL2'000D',CL13'DDDDDDDDDDDDD'
         DC    XL2'0017',CL23'EEEEEEEEEEEEEEEEEEEEEEE'
         DC    XL2'0009',CL9'FFFFFFFFF'
         DC    XL2'0013',CL19'GGGGGGGGGGGGGGGGGGG'
         DC    XL2'0019',CL25'HHHHHHHHHHHHHHHHHHHHHHHHH'
         DC    XL2'0008',CL8'IIIIIIII'
         END   TESTBXLE


Thanks,
Mark.
8c

Reply via email to