What is house keeping in assembler? And explain the
following code
HELLOTSO START 0
* PRINT NOGEN
BEGIN SAVE (14,12)
LR 12,15
USING TYPE,12
ST 13,SAVE+4
LA 11,SAVE
ST 11,8(13)
LR 13,11
Answer Posted / mike m
Housekeeping is the work done at the start of an ALC
program that saves the contents of regs
14,15,0,1,2,3,4,5,6,7,8,9,10,11,12 into an addr off R13.
After that and in this example, R15(which contains prog.
entry point) is loaded into R12. The USING completes the
work to make R12 the BASE reg. Within this code @ label =
SAVE is a 72 byte work area. The first STORE(ST) saves the
contents of R13 -> 4 bytes into the address that SAVE is
located at. LA(Load Address) loads the address of the area
@ label = SAVE into REG 11. The second STORE(ST) then
stores the contents of Reg 11 -> 8 bytes beyond the addr.
in Reg 13. The LOAD REGISTER(LR) then loads the contents of
Reg 11 into Reg 13. REG 13 now has the addr of the area @
label = SAVE that may be used if this code calls another
routine.
| Is This Answer Correct ? | 6 Yes | 2 No |
Post New Answer View All Answers
Explain the difference between various read and find statement?
what is need of start 0? In steed of
Ap wkur,=p5 where wkur is a label?
What will happen if we drop the base register in the program which contains only one basereg?
Explain how to initialize a register to 0000?
explain about maximum displacement and how to cross this limit?
how do you round the addition or subtraction of two numbers in assembler? what does the following code do? change process tool(code changes from dev to prd) the changes made to your code should be effected in live. How the process takes place. That is how can you move the code changes from development to production?
Explain the difference in data type "x" and "p"?
What does the following code do? Ap wkur,=p5 where wkur is a label?
In the house keeping section of an MVS assembly language program, like the one below STM R14,R12,12(R13) BASR R12,R0 USING *,R12,R11 LA R11,2048 LA R11,2048(R11,R12) .... .... 1. What if BASR R12,R0 IS NOT PRECEDE USING *,R12,R11? 2. USING (base address), REGISTER does USING directive says assembler to treat particular Register as a base register with the mentioned base address..in the above case * i.e current location counter..well if that is the case why we need BASR R12,R0 ? 3. What if I write like STM R14,R12,12(R13) BASR R12,R0 LA R11,2048 LA R11,2048(R11,R12) USING *,R12,R11 there is no address resolution being calculated in both LA statements so is it a right way to set Base register?..will there be any issues with Domain regarding R11 and R12?
What is need of start 0? In steed of can we use anyother numerics? If we use what will happen?
What is icm instruction?
Explain how to produce soc7 abend?
how to retrieve the instream data in sysin?
What is maximum displacement?