The following can be specified for imm4:
It compares the current flag condition with the flag condition indicated by the value of the lower 4 bits of the absolute expression (see "Table 5.30 sbfcnd Instruction List") specified by the first operand.
If the values match, subtracts the word data of the register specified by the second operand from the word data of the register specified by the third operand. And 1 is subtracted from the subtraction result and that result is stored in the register specified by the fourth operand.
If the values not match, subtracts the word data of the register specified by the second operand from the word data of the register specified by the third operand. And that result is stored in the register specified by the fourth operand.
It compares the current flag condition with the flag condition indicated by the string in the "cnd" part.
If the values match, subtracts the word data of the register specified by the first operand from the word data of the register specified by the second operand. And 1 is subtracted from the subtraction result and that result is stored in the register specified by the third operand.
If the values not match, subtracts the word data of the register specified by the first operand from the word data of the register specified by the second operand. And that result is stored in the register specified by the third operand.
For the adcond instruction, the assembler generates the corresponding sbf instruction (see "Table 5.30 sbfcnd Instruction List") and converts it to syntax "sbf imm4, reg1, reg2, reg3". |
If an absolute expression having a value exceeding 4 bits is specified as imm4 of the sbf instruction, the following message is output, and assembly continues using the lower 4 bits of the specified value. |
If 0xD is specified as imm4 of the sbf instruction, the following message is output, and assembly is stopped. |