GATE | GATE CS 1996 | Question 41
Which of the following macros can put a micro assembler into an infinite loop?
.MACRO M1 X .IF EQ, X ;if X=0 then M1 X + 1 .ENDC .IF NE X ;IF X≠0 then .WORD X ;address (X) is stored here .ENDC .ENDM
.MACRO M2 X .IF EQ X M2 X .ENDC .IF NE, X .WORD X+1 .ENDC .ENDM
(A) (ii) only
(B) (i) only
(C) Both (i) and (ii)
(D) None of the above
Explanation: In second Macro, If we assume the value of X is 0 then statement “M2 X” would be called until value of X is 0 (Recursive call).
And, the value of X is never modified hence it will fall into an infinite loop.
In first Macro,
The value of X is increased by 1 hence it will never fall into an infinite loop.
Option (A) is correct.
Quiz of this Question