Shouldn’t both option B and D be the answer . Reason for B- to change from non privledge to privledge mode a software interrupt (system call) has to be generated. For example, lets say we have some data stored in memory and we want to output it. The memory will contact CPU via an interrupt which then shows the output to the user.
Context switching with any non privledge instruction will also result in change of mode. Hence option B and D should be correct.
Please correct me if Im mistaken anywhere.