Test on Macros and Conditional Assembly 
1.   When the assembler encounters a macro name in a program, the block of text associated with the macro name is .
2.   The process of substituting the block of text associated with the macro name is called macro invocation.
  True
  False
3.   The macro directive can be used for constant substitution during assembly time.
  True
  False
4.   The directives = and EQU are identical.
  True
  False
5.   In the macro directive, the parameters are optional.
  True
  False
6.   To invoke or call a macro, use the macro and supply the necessary parameter values.
7.   During macro expansion, the assembler replaces each parameter in the macro body by its corresponding .
8.   One use of macros is to create new instructions.
  True
  False
9.   Macros and procedures both improve program productivity by aiding in the development of modular source code.
  True
  False
10.   Parameter passing in a macro invocation is similar to that in a procedure call of assembly language.
  True
  False
11.   Macros avoid the overhead associated with procedures by text substitution but increase the requirement.
12.   All parameter types that can be passed to macros can also be passed to procedures.
  True
  False
13.   Macro invocation is done at time by text substitution.
14.   Procedure invocation is done at time by transferring control to the procedure.
15.   Using macros results in
  faster execution of the code.
  increased memory space due to macro expansions.
  assembly-time overhead.
  all the above.
16.   The directive is provided by the assembler to declare labels in a macro local to that macro.
17.   The labels that the assembler generates to replace the local labels are of the form ??XXXX, where XXXX is a hexadecimal number between 0 and
  FH
  FFH
  FFFH
  FFFFH.
18.   To avoid conflicts with local labels, you should not use labels in your program that begin with .
19.   The file is generated when a program is assembled, and shows assembly code and the corresponding machine code, and how macros are expanded.
20.   The following list control directive allows listing of subsequent source lines.
  .LIST
  .XLIST
  .LALL
  .SALL
21.   The following list control directive suppresses listing of subsequent source lines.
  .LIST
  .XLIST
  .LALL
  .SALL
22.   The following list control directive enables listing of macro expansions. All source lines are listed, except those beginning with a double semicolon.
  .XLIST
  .LALL
  .SALL
  .XALL
23.   The following list control directive suppresses listing of all statements in macro expansions.
  .XLIST
  .LALL
  .SALL
  .XALL
24.   The following list control directive lists only the source statements in a macro expansion that generate code or data.
  .XLIST
  .LALL
  .SALL
  .XALL
25.   If the assembler finds an error during macro expansion, it indicates an error
  at the point of the macro invocation.
  inside the macro at the place where there is an error.
  without showing its place.
26.   A macro may invoke another macro and may invoke itself.
  True
  False
27.   When the assembler encounters the pseudo-op INCLUDE MACROS, it copies all the macro definitions from the file MACROS into the program
  at the beginning of the program.
  at the position of the INCLUDE statement.
  at the end of the program.
28.   The INCLUDE statement
  has to appear in the beginning of the program.
  may appear anywhere in the program, as long as it precedes the invocation of its macros.
  may appear anywhere in the program even after the invocation of its macros.
29.   Any comment that starts with will appear only in the macro definition but not in macro expansions.
30.   The operator forces the assembler to substitute a parameter with the actual argument.
31.   The operator is typically used to concatenate one or more parameters with other text.
32.   To substitute a parameter inside a quoted string, we need to use the
  literal-text string operator.
  literal-character operator.
  expression evaluate operator.
  substitute operator.
33.   The operator informs the assembler that the enclosed text should be treated as a single string (argument) rather than separate arguments.
34.   Which of the following is not a parameter separator?
  comma
  semicolon
  space
  tab
35.   Which of the operators can be used to force the assembler to treat a character literally by removing its default special meaning?
  literal-text string operator.
  literal-character operator.
  substitute operator.
  both literal-text string and literal-character operators.
36.   The operator preceding a character forces the assembler to treat the character literally without its default special meaning.
37.   Writing !; is equivalent to <;>.
  True
  False
38.   The operator causes the expression to be evaluated and its value replace the expression itself.
39.   Repeat block directives can be used
  inside a macro definition.
  outside a macro definition.
  both inside and outside a macro definition.
40.   When the assembler encounters the macro, the statements in the macro body are repeated a number of times equivalent to the value of the expression.
41.   The statments in the macro body of the WHILE directive are repeated until the expression evaluates to
  false.
  true.
  non-zero.
42.   The directive causes the statements in the macro body to be repeated once for each argument.
43.   The directive causes the statements in the macro body to be repeated once for each character in the string argument.
44.   directives may be used to assemble certain statements and exclude others.
45.   The IF directive assembles the then part if the expression evalues to
  true.
  false.
  zero.
46.   The IFE directive assembles the then part if the expression evalues to
  true.
  false.
  non-zero.
47.   The operator returns the number of bytes reserved for the operand in memory.
48.   The directive is used for displaying text on the screen.
49.   The IFNDEF directive causes the conditional block of statements to be assembled if the symbol is
  defined.
  not defined.
  declared as EXTRN.
50.   The IFB directive assembles the then part if the argument is
  blank.
  non blank.
  defined.
  not defined.
51.   The directive stops any macro expansion or repeat block expansion that is in progress. All remaining statements after this directive are ignored.
52.   When the assembler encounters the directive, it displayes the message "forced error", which indicates a fatal assembly error.
53.   The IFIDN directive causes the condition block of statements to be assembled if the arguments are
  identical character strings (case sensitive).
  identical character strings (case insensitive).
  different character strings (case sensitive).
  different character strings (case insensitive).
54.   The IFDIFI directive causes the condition block of statements to be assembled if the arguments are
  identical character strings (case sensitive).
  identical character strings (case insensitive).
  different character strings (case sensitive).
  different character strings (case insensitive).
55.   All directives introduce
  only assembly-time overhead.
  only run-time overhead.
  only assembly-time overhead but not run-time overhead.
  both assembly-time and run-time overhead.