GATE | GATE-CS-2017 (Set 1) | Question 26

Consider the C struct defines below:

struct data { 
    int marks [100] ; 
    char grade; 
    int cnumber; 
struct data student; 

The base address of student is available in register R1. The field student.grade can be accessed efficiently using
(A) Post-increment addressing mode. (R1)+
(B) Pre-decrement addressing mode, -(R1)
(C) Register direct addressing mode, R1
(D) Index addressing mode, X(R1), where X is an offset represented in 2’s complement 16-bit representation.

Answer: (D)

Explanation: The address of student grade can only be accessed by using the base address of Student.

  • Post-increment addressing mode. (R1)+ – Will give the next address and not the desired grade address
  • Pre-decrement addressing mode, -(R1) – Will give the previous address and not the desired grade address
  • Register direct addressing mode, R1 : In this mode, the address of the operand is embedded in the instruction code.
  • Index addressing mode: It is the only mode which gives access to next address by adding displacement in base address using displacement mode. . Base register contains a pointer to a memory location. An integer (constant) is also referred to as a displacement. The address of the operand is obtained by adding the contents of the base register plus the constant.

Therefore, option D is correct

Quiz of this Question

My Personal Notes arrow_drop_up