Step 1: Read off the bit allocation.
The instruction word is 16 bits wide. It is split into one opcode field of 7 bits and up to three operand fields of 3 bits each. The question also states directly that any internal register can be picked using only three bits.
Step 2: Find the number of internal registers.
A field of 3 bits can address \(2^3=8\) distinct values. Since the register field is 3 bits wide, the processor can have at most 8 internal registers. So option (A), which claims 16 registers, is wrong, and option (C), which claims up to 8 registers, is correct.
Step 3: Find the number of opcodes.
The opcode field is 7 bits wide, so it can encode \(2^7=128\) distinct operation codes. This makes option (B) correct. Option (D), which claims 512 opcodes (that would need \(2^9\), a 9 bit field), is wrong.
Step 4: Check consistency with the instruction width.
With three operands of 3 bits each plus the 7 bit opcode, the total is \(7+3\times3=16\) bits, which matches the given 16-bit instruction width exactly. This confirms 3 bits per operand and 7 bits for the opcode are the right field sizes to work with.
Final Answer:
The processor can have up to 8 internal registers and can support 128 unique opcodes.
\[ \boxed{\text{(B) and (C)}} \]