We are just beginning to study branch instructions, but they are actually quite easy to understand. In a branch instruction, a test is made for a certain condition, normally comparing two registers or perhaps determining the value of a single register. An example is bgez $t1,next. This branch instruction instructs the computer to evaluate the contents of the register $t1. If the contents are greater than or equal to 0 (≥ 0), then the computer immediately goes to the instruction labeled "next," wherever it is in the program, and executes it, continuing to execute instructions from that point. If the contents of $t1 are less than zero, the computer simply executes the instruction that follows the branch instruction.
Let’s use that simple branch instruction to do the following:
Load the two words declared in the data statement shown to the right into registers, and then determine if either is ≥ 0. If either number is ≥ 0, print it out using syscall 1 (you do not have to include a leader of any sort). If a number is negative, do not print it out. End the program with a syscall 10. Note: you can declare words as either decimal or hexadecimal. SPIM understands both number systems.
If only one number is printed out, which number is it?