GATE | CS | 2003 | COA | Machine Instructions | Question 49

Last Updated :
Discuss
Comments

Consider the following assembly language program for a hypothetical processor. A, B, and C are 8 bit registers. The meanings of various instructions are shown as comments.

MOV B, # 0;B ← 0
MOV C, # 8;C ← 8
Z :CMP C, # 0;compare C with 0
JZX;jump to X if zero flag is set
SUB C, # 1;C ← C - 1
RRC A, # 1;right rotate A through carry by one bit. Thus:
;if the initial values of A and the carry flag are a7...a0 and
;c0 respectively, their values after the execution of this
;instruction will be c0a7...a1 and a0 respectively.
JC Y;jump to Y if carry flag is set
JMP Z;jump to Z
Y :ADD B, # 1;B ← B + 1
JMP Z;jump to Z
X :

Which of the following instructions when inserted at location X will ensure that the value of register A after program execution is the same as its initial value ?

RRC A, #

NOP ; no operation

LRC A, # 1 ; left rotate A through carry flag by one bit

ADD A, # 1

Share your thoughts in the comments