OW... are the output fields i defined it exactly as in the DSECT got from
the macros.
> As it is an output field, the position is important (and it is why i
> detected a problem in the positions of my fields)
> Its is OK now with OW... variables defined as characters CLx
>
If it works, it works. Good news. But your code might be more robust if you
were able to use the macro to define storage in your program (CSECT), or
use it to define a DSECT which maps storage in your code.
If you are able to post the line defining the macro (the line after the
actual word 'MACRO') from the macro library here I could say more, but the
idea is "Don't re-invent the wheel". If someone has defined the report
already, re-use their work if you can.
>
> (PS: When i use NOALIGN , the program abends at execution ...)
>
Yes, you get that :-) NOALIGN is not often used, because there is usually
a better way. You'd have to double check every alignment. Why make life
hard for yourself?
>
> As i learn assembler "on the flight" , there is some important things that
> i don' t understand , such as the alignment .... This is something we don't
> care in cobol , rexx .... Can you tell me why assembler has the alignment
> in words that are easy to understand and visualize in my little head ?
>
It's the way the hardware has worked for many years. It actually made the
hardware simpler, faster and less expensive if it didn't have to allow for
odd alignment, for example. Every instruction is aligned on a halfword and
for some instructions (L, ST etc.) the data had to be aligned as well. Even
if the hardware now allows odd alignment (I don't know--I am out of date),
I'd say it's usually good practice to align things right anyway.
As an example from my 31-bit experience, if you really need to load or
store a register at an address that might not be aligned, I would use ICM
and STCM instead. These two do (mostly) the same thing, but only the first
would be correct for R8 pointing to an odd address. This is from memory, so
please forgive any mistakes :-
ICM R1,B'1111',0(R8) B'1111' mask stores all 4 bytes,
unaligned and sets CC
L R1,0(,R8)
Same comment for these two:-
STCM R1,B'1111',0(R8)
ST R1,0(,R8)
Rupert
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN