Can we use MVC instruction to move pack field to pack
field....which instruction you will use and why ?
Answer Posted / steve holton
Qualification to above answer:
You can use MVC to move ANY data from any addressable
storage area to another. So the answer above is correct.
But if you use this technique, it is up to the programmer to
ensure that the result is valid. For example, the source
field may not be the same length as the target, so any
subsequent decimal arithmetic calculations (after a
"straight" MVC FIELD2,FIELD2) against the target field could
result in abend (S0C7). Even if the source field IS packed
decimal, if it is of a different length than the target, the
programmer will have to "adjust" the source and target
specifications to ensure that the result in the target field
is valid packed decimal. For example, if the source field is
PL3 (packed length 3)and the target is PL5, a "straight" MVC
PL5field,PL3field will leave 2 bytes of "garbage" in the
last 2 bytes of PL5field (assuming that you don't get an
abend S0C4 because the and of PL3 is at a page boundary).
For this case to work, you need MVC PL5field+2(3),PL5field,
then you need to ensure that the "top two" bytes of PL5field
are zero to ensure that subesequent packed decimal
arithmetic using PL5field will work.
| Is This Answer Correct ? | 14 Yes | 0 No |
Post New Answer View All Answers
How are data passed from jcl parm to assembler program?
Explain about maximum displacement?
What is the use of trt instruction?
Explain the difference between various read and find statement?
What is maximum displacement?
explain icm instruction?
What is house keeping in assembler?
What is icm instruction?
Why do we use "drop"?
what is need of start 0? In steed of
What is maximum displacement and how to cross this limit?
Explain how to pass instream data in sysin with assembler?
Explain how to produce soc7 abend?
What does "using" do?
How is data passed from a calling program to an assembler called program?