Experienced in IBM Products? Then this is for you. Assembler is a programming language which is used to code instructions rather than writing code in machine language like other available languages. Assembler language is written in statements which are either comments or instructions. The instruction is the request to the assembler to perform specific operations during assembly of a source module. Do search in wisdom jobs for IBM Assembler job listings for full time and part time positions updated today. Check out interview questions page to get more information on the kind and level of questions you will come across during the interview. Wisdomjobs IBM Assembler interview questions and answers provides you with complete guide and makes you prepared for winning job interview.
ICM means INsert character under mask. its a movement of character under mask bits.
R8 ==> 12 34 56 78
SRC ==> AB CD EF 10
R8 ==> 12 CD EF 78
If you write an MVC statement with an equated value as the sending operand, then the assembler will try to resolve that operand value as a base and displacement, it will not necessarily throw an error at assembly, but the results at execution will be unpredictable and may well give rise to a protection exception.
The point of the MVI statement is that the single byte sending operand value is assembled as part of the instruction itself and does not have to be 'fetched' at execution time, therefore if you are only moving a single byte of fixed value, then an MVI will be marginally more efficient than an MVC
Use Accept in procedure division.
01 empno. Pic x(05).
01 empname pic x(15).
01 empsal pic 9(10).
In JCL :
//sysin dd *
R1 contains a fullword that contains a address pointing to the parm data. In pgm before accessing the parm data use L Rn,0(,R1) where n=3,..11 , Rn contains the address that points to parm data. Create DSECT that contains a halfword and the length of the data.
It will give an error at the time of assembly, if there are some labels defined in the program(provided they are being referenced in your program). This is because the assembler resolves the displacement of that variable from the location where your base register is pointing to.
it all depends upon the length of your program , if it is more than 4095 then we need 2 register else only one can do needful. basically we can even use savearea register as a base register, so as to accomodate the length of the program
In MVS assembler data type X denotes hexadecimal data type which unsigned pack. suppose you define VAR1 as "VAR1 DC X'01'".
It will occupy 1 byte in the memory and stored as:
See following example:
VAR2 DC P'1'
it will occupy one byte in the memory and stored as '1C'.
Neither DROP nor USING affect the register contents. Once a register has been loaded with the address of a piece of storage, the using statement can be used to 'map' that storage against a set of labels defining the layout of that storage e.g. a DSECT. Then whenever one of those labels is referenced in the code, in moves etc, the assembler resolves the relative address as a particular displacement from the absolute address in the register. The DROP instruction removes the relationship between the labels and the register and renders subsequent references to those labels as unresolvable, giving rise to errors at assembly (compile)time.
Typically the DROP instruction will be used to allow use of the register for another purpose, e.g. address a different bit of storage via a using staement on second DSECT without the risk of corrupting that data via moves referencing the original DSECT.
Question 10. What Is House Keeping In Assembler? And Explain The Following Code <br>hellotso Start 0 <br>* Print Nogen <br>begin Save (14,12) <br>lr 12,15 <br>using Type,12 <br>st 13,save+4 <br>la 11,save <br>st 11,8(13) <br>lr 13,11
House keeping is used to store the contents of the base register from one register to another for using that register. These are house keeping instructions where contents of the registers are stored
A base register is any general purpose register chosen by programmer. It is assigned at the beginning of the program as part of housekeeping with the USING assembler keyword, and it's purpose is to maintain addressibility within a page (4k) of code or data.
Lenght feild is 8 bits so the data is stored in binary format so if we have all 8 bits set to 1 then the length will be 128+64+32+16+8+4+2+1 = 255.or 2^7+ 2^6+2^5...2^0 = 255.
so the lenght is 256 .
By convention, general purpose register 1 will have the address of the parameter list. The list will be a list of pointers (addresses) to individual parameters. The CALL macro does this, but you can bypass the CALL macro and be creative on how you set up the parameter list. Don't forget the parameter must be on a fullword boundary.
For example we want to test if given variable is numeric we can do it by following code.
We can define a table with all FF execpt from 0 to 9 00
Table1 DC 256c'ff'
Now we can give TRT var1,table1
START is an assembler directive which has an optional operand, (0 in your example). This operand acts as the starting address of the program e.g. PROGNAME START X'3E0' tells the linkage editor that this program is to be loaded into main storage at address '3E0' in hex.
This is a vague two-part question.
There are 16 registers, and ALL can be used as a base EXCEPT for register 0, so the answer is AT LEAST 15. AT LEAST is specified here because in any section of code, you can "re-use" a previous base register once you are no longer within the original address range ("scope") of that particular base register. By re-using the registers, you can have base registers that will cover ALL of the memory in the machine - but not all at once - you have to "bite off" 15 base reg-at-a-time chunks of memory (all addressable memory does not have to be contiguous - it can be scattered around memory in 4K pieces).
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.
We can certainly use the MVC instruction to move the pack data to another pack field.
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)
Question 21. Write The Fetch Cycle And Execute Cycle For Following Instructions:jmpnz (jump To The Given Address If The Accumulator Not Equal To Zero) Ret(return From A Subroutine) Adb (add The Contents Of Register B To The Accumulator And Save Result In The Accumulator)?
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.
There are two possible scenarios:
Question 23. Registers(0-15) ,where They Are Going Be Resides Does That Mean Here Is It Resides Whether Real Or Virtual Memory? And Why?then Why We Are Assign Even Registers(0 To 6) For Fp Operations?
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.
S0C7 occurs when the data exception occurs.They are many ways to produce S0C7
VSAM file can be accessed through an Assembler application program by using assembler macros RPL, ACB
Question 26. 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?
Assuming displacement is referring to x(d,b) addressing and not something like displacement from the start of a CSECT.
IBM Assembler Related Tutorials
|IBM Lotus Notes Tutorial||IBM - AS/400 Tutorial|
|IBM Cognos Tutorial||IBM DB2 Tutorial|
|Windows 10 Tutorial||Unix/Linux Tutorial|
IBM Assembler Related Interview Questions
|IBM Lotus Notes Interview Questions||IBM - AS/400 Interview Questions|
|IBM - VSAM Interview Questions||IBM Cognos Interview Questions|
|IBM Informix Interview Questions||IBM DB2 Interview Questions|
|IBM AIX Interview Questions||Solaris Interview Questions|
|IBM Lotus Domino Interview Questions||IBM Cloud Computing Infrastructure Architect V1 Interview Questions|
|IBM AIX 7 Administration Interview Questions||IBM Integration Bus Interview Questions|
|Unix/Linux Interview Questions||Solaris Administrator Interview Questions|
IBM Assembler Related Practice Tests
|IBM Lotus Notes Practice Tests||IBM - AS/400 Practice Tests|
|IBM - VSAM Practice Tests||IBM Cognos Practice Tests|
|IBM Informix Practice Tests||IBM DB2 Practice Tests|
|IBM AIX Practice Tests||Solaris Practice Tests|
|IBM Lotus Domino Practice Tests||IBM Cloud Computing Infrastructure Architect V1 Practice Tests|
|IBM AIX 7 Administration Practice Tests|
All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd
Wisdomjobs.com is one of the best job search sites in India.