InterviewSolution
This section includes InterviewSolutions, each offering curated multiple-choice questions to sharpen your knowledge and support exam preparation. Choose a topic below to get started.
| 1. |
What Is The Equ Directive? |
|
Answer» The EQU DIRECTIVE is used for DEFINING CONSTANTS. The syntax of the EQU directive is as follows − CONSTANT_NAME EQU expression For example: TOTAL_STUDENTS equ 50 You can then use this CONSTANT value in your code, like − mov ecx, TOTAL_STUDENTS The operand of an EQU statement can be an expression − LENGTH equ 20 Above code segment would define AREA as 200. The EQU directive is used for defining constants. The syntax of the EQU directive is as follows − CONSTANT_NAME EQU expression For example: TOTAL_STUDENTS equ 50 You can then use this constant value in your code, like − mov ecx, TOTAL_STUDENTS The operand of an EQU statement can be an expression − LENGTH equ 20 Above code segment would define AREA as 200. |
|
| 2. |
What Are The Basic Modes Of Addressing ? |
|
Answer» The three basic modes of addressing are −
Register Addressing In this addressing mode, a register contains the operand. Depending UPON the instruction, the register may be the first operand, the second operand or both. For example, MOV DX, TAX_RATE ; Register in first operand As processing data between registers does not involve memory, it provides fastest processing of data. Immediate Addressing An immediate operand has a constant value or an expression. When an instruction with two operands uses immediate addressing, the first operand may be a register or memory location, and the second operand is an immediate constant. The first operand defines the LENGTH of the data. For example, BYTE_VALUE DB 150 ; A byte value is defined Direct Memory Addressing When operands are specified in memory addressing mode, direct access to main memory, usually to the data segment, is required. This way of addressing results in slower processing of data. To locate the exact location of data in memory, we need the segment start address, which is typically found in the DS register and an offset value. This offset value is also called effective address. In direct addressing mode, the offset value is specified directly as part of the instruction, usually indicated by the variable NAME. The assembler calculates the offset value and maintains a symbol table, which stores the offset values of all the variables used in the PROGRAM. In direct memory addressing, one of the operands refers to a memory location and the other operand references a register. The three basic modes of addressing are − Register Addressing In this addressing mode, a register contains the operand. Depending upon the instruction, the register may be the first operand, the second operand or both. For example, MOV DX, TAX_RATE ; Register in first operand As processing data between registers does not involve memory, it provides fastest processing of data. Immediate Addressing An immediate operand has a constant value or an expression. When an instruction with two operands uses immediate addressing, the first operand may be a register or memory location, and the second operand is an immediate constant. The first operand defines the length of the data. For example, BYTE_VALUE DB 150 ; A byte value is defined Direct Memory Addressing When operands are specified in memory addressing mode, direct access to main memory, usually to the data segment, is required. This way of addressing results in slower processing of data. To locate the exact location of data in memory, we need the segment start address, which is typically found in the DS register and an offset value. This offset value is also called effective address. In direct addressing mode, the offset value is specified directly as part of the instruction, usually indicated by the variable name. The assembler calculates the offset value and maintains a symbol table, which stores the offset values of all the variables used in the program. In direct memory addressing, one of the operands refers to a memory location and the other operand references a register. |
|
| 3. |
What Linux System Calls? |
|
Answer» You can make use of Linux system calls in your assembly programs. You need to take the FOLLOWING steps for using Linux system calls in your program −
There are six registers that store the arguments of the system call used. These are the EBX, ECX, EDX, ESI, EDI, and EBP. These registers take the consecutive arguments, starting with the EBX register. If there are more than six arguments, then the memory location of the first argument is stored in the EBX register. Most assembly language instructions REQUIRE operands to be processed. An operand address provides the location, where the data to be processed is stored. Some instructions do not require an operand, whereas some other instructions may require one, two, or three operands. When an instruction REQUIRES two operands, the first operand is generally the destination, which contains data in a register or memory location and the second operand is the source. Source contains either the data to be delivered (immediate addressing) or the address (in register or memory) of the data. Generally, the source data REMAINS unaltered after the operation. You can make use of Linux system calls in your assembly programs. You need to take the following steps for using Linux system calls in your program − There are six registers that store the arguments of the system call used. These are the EBX, ECX, EDX, ESI, EDI, and EBP. These registers take the consecutive arguments, starting with the EBX register. If there are more than six arguments, then the memory location of the first argument is stored in the EBX register. Most assembly language instructions require operands to be processed. An operand address provides the location, where the data to be processed is stored. Some instructions do not require an operand, whereas some other instructions may require one, two, or three operands. When an instruction requires two operands, the first operand is generally the destination, which contains data in a register or memory location and the second operand is the source. Source contains either the data to be delivered (immediate addressing) or the address (in register or memory) of the data. Generally, the source data remains unaltered after the operation. |
|
| 4. |
What Are The Processor Registers? |
|
Answer» There are TEN 32-bit and six 16-bit processor registers in IA-32 architecture. The registers are grouped into THREE categories − The general registers are further divided into the following groups −
There are ten 32-bit and six 16-bit processor registers in IA-32 architecture. The registers are grouped into three categories − The general registers are further divided into the following groups − |
|
| 5. |
What Are Memory Segments? |
|
Answer» A segmented memory model divides the system memory into groups of independent segments referenced by pointers located in the segment REGISTERS. Each segment is used to contain a specific type of DATA. One segment is used to contain instruction codes, another segment stores the data elements, and a third segment keeps the program stack. In the light of the above discussion, we can specify VARIOUS memory segments as −
A segmented memory model divides the system memory into groups of independent segments referenced by pointers located in the segment registers. Each segment is used to contain a specific type of data. One segment is used to contain instruction codes, another segment stores the data elements, and a third segment keeps the program stack. In the light of the above discussion, we can specify various memory segments as − |
|
| 6. |
What Is The Syntax Of Assembly Language Statements? |
|
Answer» Assembly language statements are entered one statement per line. Each statement follows the FOLLOWING format − [label] MNEMONIC [operands] [;COMMENT] The fields in the SQUARE brackets are optional. A basic instruction has two PARTS, the first one is the name of the instruction (or the mnemonic), which is to be executed, and the second are the operands or the parameters of the command. Assembly language statements are entered one statement per line. Each statement follows the following format − [label] mnemonic [operands] [;comment] The fields in the square brackets are optional. A basic instruction has two parts, the first one is the name of the instruction (or the mnemonic), which is to be executed, and the second are the operands or the parameters of the command. |
|
| 7. |
What Are The Assembly Language Statements? |
|
Answer» Assembly language programs consist of three types of statements −
The executable instructions or simply instructions TELL the PROCESSOR what to do. Each instruction CONSISTS of an operation code (opcode). Each executable instruction generates one machine language instruction. The assembler directives or pseudo-ops tell the assembler about the VARIOUS aspects of the assembly process. These are non-executable and do not GENERATE machine language instructions. Macros are basically a text substitution mechanism. Assembly language programs consist of three types of statements − The executable instructions or simply instructions tell the processor what to do. Each instruction consists of an operation code (opcode). Each executable instruction generates one machine language instruction. The assembler directives or pseudo-ops tell the assembler about the various aspects of the assembly process. These are non-executable and do not generate machine language instructions. Macros are basically a text substitution mechanism. |
|
| 8. |
What Is The Text Section? |
|
Answer» The text SECTION is USED for keeping the ACTUAL code. This section must begin with the declaration global _start, which tells the KERNEL where the program execution begins. The SYNTAX for declaring text section is: section.text The text section is used for keeping the actual code. This section must begin with the declaration global _start, which tells the kernel where the program execution begins. The syntax for declaring text section is: section.text |
|
| 9. |
What Is The Bss Section? |
|
Answer» The BSS section is USED for declaring VARIABLES. The SYNTAX for declaring bss section is : section.bss The bss section is used for declaring variables. The syntax for declaring bss section is : section.bss |
|
| 10. |
What Is The Data Section? |
|
Answer» The data section is used for declaring initialized data or constants. This data does not change at runtime. You can declare various constant VALUES, file NAMES, or buffer SIZE, etc., in this section. The syntax for declaring data section is: section.data The data section is used for declaring initialized data or constants. This data does not change at runtime. You can declare various constant values, file names, or buffer size, etc., in this section. The syntax for declaring data section is: section.data |
|
| 11. |
What Are The Assembly Program Sections? |
|
Answer» An assembly PROGRAM can be divided into three sections − An assembly program can be divided into three sections − |
|
| 12. |
How To Installing Nasm? |
|
Answer» If you select "Development Tools" while installing Linux, you MAY get NASM installed along with the Linux operating system and you do not need to download and install it separately. For checking whether you already have NASM installed, take the following steps −
To install NASM, take the following steps :
This should install NASM on your system. Alternatively, you can use an RPM distribution for the FEDORA Linux. This version is simpler to install, just double-click the RPM file.
If you select "Development Tools" while installing Linux, you may get NASM installed along with the Linux operating system and you do not need to download and install it separately. For checking whether you already have NASM installed, take the following steps − To install NASM, take the following steps : This should install NASM on your system. Alternatively, you can use an RPM distribution for the Fedora Linux. This version is simpler to install, just double-click the RPM file.
|
|
| 13. |
What Is Local Environment Setup? |
|
Answer» Assembly language is dependent upon the INSTRUCTION set and the architecture of the processor. In this tutorial, we focus on Intel-32 processors like Pentium. To FOLLOW this tutorial, you will need :
There are many good assembler programs, such as :
We will use the NASM assembler, as it is :
Assembly language is dependent upon the instruction set and the architecture of the processor. In this tutorial, we focus on Intel-32 processors like Pentium. To follow this tutorial, you will need : There are many good assembler programs, such as : We will use the NASM assembler, as it is : |
|
| 14. |
What Is Hexadecimal Number System? |
|
Answer» Hexadecimal number system USES base 16. The digits in this system RANGE from 0 to 15. By convention, the letters A through F is used to represent the hexadecimal digits corresponding to decimal values 10 through 15. Hexadecimal numbers in computing is used for abbreviating lengthy binary REPRESENTATIONS. Basically, hexadecimal number system represents a binary data by DIVIDING each byte in half and expressing the value of each half-byte. Hexadecimal number system uses base 16. The digits in this system range from 0 to 15. By convention, the letters A through F is used to represent the hexadecimal digits corresponding to decimal values 10 through 15. Hexadecimal numbers in computing is used for abbreviating lengthy binary representations. Basically, hexadecimal number system represents a binary data by dividing each byte in half and expressing the value of each half-byte. |
|
| 15. |
What Is Binary Number System? |
|
Answer» Every NUMBER system uses positional notation, i.e., each position in which a digit is written has a different positional value. Each position is power of the base, which is 2 for binary number system, and these POWERS begin at 0 and increase by 1. The value of a binary number is BASED on the presence of 1 bits and their positional value. So, the value of a given binary number is: 1 + 2 + 4 + 8 +16 + 32 + 64 + 128 = 255 which is same as 28 - 1. Every number system uses positional notation, i.e., each position in which a digit is written has a different positional value. Each position is power of the base, which is 2 for binary number system, and these powers begin at 0 and increase by 1. The value of a binary number is based on the presence of 1 bits and their positional value. So, the value of a given binary number is: 1 + 2 + 4 + 8 +16 + 32 + 64 + 128 = 255 which is same as 28 - 1. |
|
| 16. |
What Are The Basic Features Of Pc Hardware? |
|
Answer» The main internal hardware of a PC consists of PROCESSOR, memory, and registers. Registers are processor components that HOLD data and address. To execute a program, the system copies it from the external device into the internal memory. The processor executes the program instructions. The fundamental unit of computer storage is a bit; it could be ON (1) or OFF (0). A group of nine related bits makes a byte, out of which eight bits are used for data and the last one is used for parity. According to the rule of parity, the NUMBER of bits that are ON (1) in each byte should always be odd. So, the parity bit is used to make the number of bits in a byte odd. If the parity is even, the system assumes that there had been a parity error (though rare), which might have been caused DUE to hardware fault or electrical disturbance. The processor supports the following data sizes −
The main internal hardware of a PC consists of processor, memory, and registers. Registers are processor components that hold data and address. To execute a program, the system copies it from the external device into the internal memory. The processor executes the program instructions. The fundamental unit of computer storage is a bit; it could be ON (1) or OFF (0). A group of nine related bits makes a byte, out of which eight bits are used for data and the last one is used for parity. According to the rule of parity, the number of bits that are ON (1) in each byte should always be odd. So, the parity bit is used to make the number of bits in a byte odd. If the parity is even, the system assumes that there had been a parity error (though rare), which might have been caused due to hardware fault or electrical disturbance. The processor supports the following data sizes − |
|
| 17. |
What Are The Advantages Of Assembly Language? |
|
Answer» Having an understanding of assembly language MAKES one aware of:
Other advantages of using assembly language are:
Having an understanding of assembly language makes one aware of: Other advantages of using assembly language are: |
|
| 18. |
What Is Assembly Language? |
|
Answer» Each personal computer has a microprocessor that manages the computer's arithmetical, logical, and control activities. Each family of processors has its own set of instructions for handling various operations such as getting INPUT from keyboard, displaying information on SCREEN and performing various other jobs. These set of instructions are called 'machine language instructions'. A processor understands only machine language instructions, which are STRINGS of 1's and 0's. However, machine language is too obscure and complex for using in SOFTWARE development. So, the low-level assembly language is designed for a specific family of processors that represents various instructions in symbolic code and a more understandable FORM. Each personal computer has a microprocessor that manages the computer's arithmetical, logical, and control activities. Each family of processors has its own set of instructions for handling various operations such as getting input from keyboard, displaying information on screen and performing various other jobs. These set of instructions are called 'machine language instructions'. A processor understands only machine language instructions, which are strings of 1's and 0's. However, machine language is too obscure and complex for using in software development. So, the low-level assembly language is designed for a specific family of processors that represents various instructions in symbolic code and a more understandable form. |
|