1. Explain about maximum displacement and how to cross this limit?
maximum displacement is 4k i.e 4096 bytes.
if we need to add more than 4096 bytes another base register.
1) If there is any updates in the Macros regarding the
structure change or addition/removal of byte, then you need
to Promote the macro to Live first.
2) Reassemble your codes against the Live Macros.
3) Raise ELAS for the Codes to go to production.
4)Promote the codes to production.
VSAM file can be accessed through an Assembler application
program by using assembler macros RPL, ACB
S0C7 occurs when the data exception occurs.They are many
ways to produce S0C7
1)Move non numeric data to a numeric feild
2)compare junk data with a numeric feild
3) Use a non numeric data in COMPUTE statement
4) Refer to the occurence in a table beyond the occurs time
with SSRANGE not checked in complier options
Registers are part of the CPU logic and should not be
confused with memory real or virtual. The question is
about as sensical as asking where the uterus resides in a
man. Also, general purpose registers 0--16 are an
entirely different breed that the floating point
registers. As for the numbering, a decision made by the
manufacturer's design people.
There are two possible scenarios:
1) This is a classroom quesiton where you are expected to
do some research on your own, and not ask someone in the
cloud for the exact answer.
2) The question is too vague, and would require a full
essay to answer. Please be more specific.
As this is mainframe assembler section, this is a trick
question - there is no JMPNZ opcode for mainframe (recently
added JNZ with relative addressing in the z/800 and later,
but no JMPNZ) and the mainframe has no RET instruction
(there is a PR to return from a cross address space or PC
"call" statement) and the mainframe has no accumulator, ADB
opcode, or B register.
8. How to initialize 20,000 bytes in the Assembler?
since the machine-code for MVC moves up to 256 bytes, you would need to do a series of MVCs to initialize 20000 bytes. this requires that you maintain a register or two to keep track of how far you've progressed through initialization.
possibly, you could get MVCL to do it; i've never tried...
MVCL uses 2 sets of even-odd pairs of registers to do the move.
you specify source address, destination address, length of source, length of destination, and fill character in the registers. the fill-character goes into the high order byte of (I THINK...) the destination length register (in this case r4)
l r4,=f'20000'
l r6,=f'20000'
la r7,source_field
la r5,dest_field
mvcl r4,r6
We can certainly use the MVC instruction to move the pack data to another pack field.
10. How to pass instream data in sysin with Assembler?
You will need to open de file SYSIN via a DCB and read the
data via GET commands. The data in the PARM field is passed
via register 1. Any dataset you want to use in Assembler
you will need to open. There are no automatic allocation.