You will need to describe how the various instructions are encoded. For each instruction, what the op-code
is and where the various fields are in the instruction word. Special attention should be paid to describing
addressing modes for both memory reference and flow control (jump, branch and skip) instructions.
Your processor should be of sufficient versatility to write a program that manipulates an array of integers
(some form of indirect addressing will be helpful). You are encouraged to examine features of several real
world processors, but your processor must be of your own design. Select features that are useful and leave
behind the historical backward compatibility features (Intel microprocessors have a lot of features to support
backward compatibility).