I view "baseless" as a poor choice to teach. Many macros require static data 
and assume that there is addressability to same.
Many programs require static data and it can be challenging (or at least 
inconvenient) to establish addressability on demand.
This all plays into why over time assembler programs that see continued 
development typically perform worse (difficult choices to make in register 
optimization) while HLL programs typically perform better (availing of better 
register optimization that comes into existence).

I think that you should teach use of "no codereg". But, with that, you should 
start with "addressability to static data".
You then add in that, if conditions are right, you can do away with that if you 
have no need to address static data or if you are willing to establish it only 
when needed. This is a tiny delta. Yes, it's of course true that if you can 
achieve "baseless" you have an extra register to play with. You have to decide 
if the nuisance of establishing static data addressability only in the places 
where it happens to be needed is worth it.

This approach is little different then teaching "coding" and then teaching the 
differences between reentrant and non-reentrant (which is a small thing).

For both of these cases, you are giving the students the knowledge they need to 
make informed choices.

Peter Relson
z/OS Core Technology Design

Reply via email to