Ans D) The struct student has a marks[100] array (400 bytes), followed by a grade field (1 byte). To access student.grade, we need to address it 400 bytes after the base address of student.
Indexed addressing mode is the most efficient here because we know the exact offset of 400 bytes from the base. This mode allows us to compute the address as base_address + offset efficiently.
Other modes like post-increment and pre-decrement are suited for sequential access, not for direct field access. Register direct would require loading the precise address, making it less efficient. Hence, indexed addressing mode is ideal for accessing student.grade using the known offset.