Related Articles

# GATE | GATE-CS-2003 | Question 49

• Difficulty Level : Easy
• Last Updated : 28 Jun, 2021

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 ?
(A) RRC A, #
(B) NOP ; no operation
(C) LRC A, # 1 ; left rotate A through carry flag by one bit

Explanation: Explanation

In the end of program execution to check whether both initial and final value of register A is A0,we need to right rotate register A through carry by one bit because RRC instruction is( Each binary bit of the accumulator is rotated right by one position. Bit D0 is placed in the position of D7 as well as in the Carry flag. CY is modified according to bit D0. Any other bit is not affected).

So (A) is correct option

Quiz of this Question

Attention reader! Don’t stop learning now.  Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.

Learn all GATE CS concepts with Free Live Classes on our youtube channel.

My Personal Notes arrow_drop_up