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
This question is part of this quiz :
Microprocessor,GATE-CS-2003,Computer Organization and Architecture GATE CS PYQs,Machine Instructions & Addressing Modes PYQ QUIZ GATE CS