Cross-Posted to IBM-Main and IBM-ASSEMBLER-List
I believe it has been discussed before:
the term "baseless programming" is an over-simplification. It should be "an
ASSEMBLER programming technique, where the code area is not covered by base
registers" - which requires separation of code area and data area and relative
branch instructions; take care of your literals.
If you have large code areas, this may save you some registers, or you may save
some time otherwise needed to save and reload the registers which cover the code
I managed to convert most of our inhouse macros in the last few months to
"baseless", including the site-specific SP macros, so now I don't have
restrictions regarding the size of the code areas any more. Of course, it is not
good to have large code areas (small functional blocks are better), but if you
want to add trace output macros or other test facilities to a functional block,
you don't like it if code area size restrictions prevent you from doing it. This
was the main reason for my "baseless" effort - I had to do some maintenance to
some very large and very old programs, and the only way to do it was to add some
Thanks to E.J. for the link to the SHARE presentation, BTW.
Am 06.12.2013 02:05, schrieb J.M.:
> On Thu, Dec 5, 2013 at 6:09 PM, Z.M. wrote:
>> Ouch. SO true.
> Yes. In this same vein, but a bit more seriously, why don't we start using
> RI-programming (for Relative & Immediate) or RelImm-programming. Because
> there is _no_ way that I can think of to write _useful_ code which does not
> use at least a few base+displacement instructions. At the very least for
> the incoming parameter list. Well, maybe a random() type program could be
> written without using any base+displacement instructions if it did some
> sort of manipulation of the data returned by the STCKE instruction instead
> of having a seed and basing the current result on the previous one.