There are 2 addressing modes.
So we need $\lceil log_22 \rceil=1$ bit for addressing mode part.
There are 256 registers.
So we need $\lceil log_2{256} \rceil=8$ bits for identifying a register. i.e register code part needs 8 bits.
There are 512K words.i.e $512*2^{10}=2^{19}$ words
So we need $\lceil log_2{2^{19}} \rceil=19$ bits for identifying a word. i.e,address part needs 19 bits.
So remaining bits of 32 bits are used to identify a instruction. i.e opcode.
So opcode has $32-(1+8+19)=32-28=4$ bits
Hence the computer can support upto 16 instructions.
So option c is the correct answer.