Conditional branch.
[Syntax]
The following can be specified for disp9:
- | Absolute expression having a value of up to 9 bits |
- | Relative expression having a PC offset reference of label |
[Function]
Compares the flag condition indicated by string cnd (see "Table 5.37 jcnd9 Instruction List") with the current flag condition. If they are found to be the same, transfers control to the address obtained by adding the value of the absolute expression or relative expression specified by the operand to the current value of the program counter (PC)Note.
Note | For a jcnd9 instruction other than jbr9, the mnemonic "bcnd9" can be used, and the "br9" machine-language instruction can be used for the jbr9 instruction (there is no functional difference). |
Table 5.37 | jcnd9 Instruction List |
|
|
|
jgt9
|
( (S xor OV) or Z) = 0
|
Greater than (signed)
|
jge9
|
(S xor OV) = 0
|
Greater than or equal (signed)
|
jlt9
|
(S xor OV) = 1
|
Less than (signed)
|
jle9
|
( (S xor OV) or Z) = 1
|
Less than or equal (signed)
|
jh9
|
(CY or Z) = 0
|
Higher (Greater than)
|
jnl9
|
CY = 0
|
Not lower (Greater than or equal)
|
jl9
|
CY = 1
|
Lower (Less than)
|
jnh9
|
(CY or Z) = 1
|
Not higher (Less than or equal)
|
je9
|
Z = 1
|
Equal
|
jne9
|
Z = 0
|
Not equal
|
jv9
|
OV = 1
|
Overflow
|
jnv9
|
OV = 0
|
No overflow
|
jn9
|
S = 1
|
Negative
|
jp9
|
S = 0
|
Positive
|
jc9
|
CY = 1
|
Carry
|
jnc9
|
CY = 0
|
No carry
|
jz9
|
Z = 1
|
Zero
|
jnz9
|
Z = 0
|
Not zero
|
jbr9
|
---
|
Always (Unconditional)
|
jsa9
|
SAT = 1
|
Saturated
|
[Description]
- | If the following is specified for disp9, the assembler generates one bcond machine instruction. |
(a) | Absolute expression having a value in the range of -256 to +255 |
(b) | Relative expression having a PC offset reference of label |
[Flag]
CY
|
---
|
OV
|
---
|
S
|
---
|
Z
|
---
|
SAT
|
---
|
[Caution]
- | If an absolute expression having a value exceeding the range of -256 to +255 is specified as disp9, the assembler outputs the following message and stops assembling. |
E0550230 : illegal operand (range error in displacement)
|
- | If an absolute expression having an odd-numbered value is specified as disp9, the assembler outputs the following message and stops assembling. |
E0550226 : illegal operand (must be even displacement)
|