Tues, 10th Nov 2015, 21:57 Re: Opcodes

A student writes:

> Dear Dr. Patt,
> I was studying for the upcoming exam by reviewing the opcodes and was
> interested in the branch opcode and jump opcode. The jump opcode, if I
> understand correctly, is essentially an unconditional branch opcode that
> sets BaseR as the PC. Is there a reason why the jump opcode is
> unconditional instead of being conditional like the branch opcode? Does it
> have to do with the LC3 data path?
> Sincerely,
> <<name withheld to protect the student who wants to make JMP conditional>>

The reason that JMP is unconditional is that I decided to make it
unconditional.  It has nothing to do with the LC-3 data path.  In fact,
we do not design a data path, and then select instructions for the ISA
based on what can be accomplished in the data path.  Quite the opposite.
We select the set of instructions in the ISA that makes sense, and THEN
design the data path that will implement all of them.

Yale Patt