BR vs. BRnzp
A student writes:
Dr. Patt,
I was curious how we should treat a "BR" instruction. Since no options are
set (to check condition codes), this instruction would essentially act like
a no-op (if I'm not mistaken), but it is fairly common to use this type of
instruction (as opposed to "BRnzp") as an unconditional branch. Should we
code this instruction literally, as a do-nothing instruction with some
target address that doesn't matter, or as an unconditional (literally)
branch? In terms of having a no-op, a JMP or unconditional BR (BR or BRnzp)
with offset 0 would still suffice.
<<name withheld to protect one who needs to read the documentation>>
You are correct, it is very common to use BR as an unconditional branch.
Thus, one might think the first place to check for the interpretation of BR
would be the relevant page of the Programmer's reference manual, which in this
case is Appendix A, page 10. The footnote seems pretty unambiguous.
Good luck finishing the first programming lab.
Yale Patt