Answer:
a. 2^6, or 64 opcodes.
b. 2^5, or 32 registers.
c. 2^16, or 0 to 65536.
d. -32768 to 32768.
Explanation:
a. Following that the opcode is 6 bits, it is generally known that the maximum number of opcodes should be 2^6, or 64 opcodes.
b. Now, since the size of the register field is 5 bits, we know that 2^5 registers can be accessed, or 32 registers.
c. Unsigned immediate operand applies to the plus/minus sign of the number. Since unsigned numbers are always positive, the range is from 0 to 2^16, or 0 to 65536.
d. Considering that the signed operands can be negative, they need a 16'th bit for the sign and 15 bits for the number. This means there are 2 * (2^15) numbers, or 2^16. However, the numbers range from -32768 to 32768.
What is that I never heard of that before