The following can be specified as disp16:
Updates the general-purpose register reg1 by adding -1 from its contents. If the contents after this update are not 0, the following processing is performed. If the contents are 0, the system continues to the next instruction.
The result of logically shifting the 15-bit immediate data 1 bit to the left and zero-extending it to word length is subtracted from the current PC value, and then the control is transferred. |
-1 (0xFFFFFFFF) is added to general-purpose register reg1. The carry flag is updated in the same way as when the add instruction, not the sub instruction, is executed. |
"0" is implicitly used for bit 0 of the 16-bit displacement. Note that, because the current PC value used for calculation is the address of the first byte of this instruction, if the displacement value is 0, the branch destination is this instruction. |
If any of the following is specified for disp16, the assembler generates one loop machine instruction. |
"1" if a carry occurs from MSB in the reg1 operation; otherwise, "0" |
|
"1" if an overflow occurs in the reg1 operation; otherwise, "0" |
|
If an absolute expression having a value exceeding the range of 0 to 65535 is specified as disp16, the assembler outputs the following message and stops assembling. |
If an absolute expression having an odd-numbered value is specified as disp16, the assembler outputs the following message and stops assembling. |
If r0 is specified as reg1 in the loop instruction, the assembler outputs the following message and stops assembling. |