So far we have seen how to move data between memory and processor registers, and how to do arithmetic in the registers. All are programs have been linear, a list of instructions carried out from start to exit. This can be done by jump and branch instructions. Jump is just the notorious go to that has been supressed from high level languages. Branch instructions are so named because they offer an alternative, to branch or not.
Execution continues from that point.
This is used for procedure call, see chapter 8. The condition is always a comparison of 2 registers, or a register and aconstant. Normally, they are compared as signed numbers. Where it matters, you get an unsigned compare by ending the operation code with a u . For your convenience, you can write comparison with zero by putting a z at the end of the operation code.