Conditional branch.
[Syntax]
The following can be specified for disp17:
- | Absolute expression having a value of up to 17 bits |
- | Relative expression having a PC offset reference of label |
[Function]
Compares the flag condition indicated by string cnd (see "Table 5.38 jcnd17 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 jcnd17 instruction other than jbr17, the mnemonic "bcnd17" can be used (there is no functional difference). |
Table 5.38 | jcnd17 Instruction List |
|
|
|
jgt17
|
( (S xor OV) or Z) = 0
|
Greater than (signed)
|
jge17
|
(S xor OV) = 0
|
Greater than or equal (signed)
|
jlt17
|
(S xor OV) = 1
|
Less than (signed)
|
jle17
|
( (S xor OV) or Z) = 1
|
Less than or equal (signed)
|
jh17
|
(CY or Z) = 0
|
Higher (Greater than)
|
jnl17
|
CY = 0
|
Not lower (Greater than or equal)
|
jl17
|
CY = 1
|
Lower (Less than)
|
jnh17
|
(CY or Z) = 1
|
Not higher (Less than or equal)
|
je17
|
Z = 1
|
Equal
|
jne17
|
Z = 0
|
Not equal
|
jv17
|
OV = 1
|
Overflow
|
jnv17
|
OV = 0
|
No overflow
|
jn17
|
S = 1
|
Negative
|
jp17
|
S = 0
|
Positive
|
jc17
|
CY = 1
|
Carry
|
jnc17
|
CY = 0
|
No carry
|
jz17
|
Z = 1
|
Zero
|
jnz17
|
Z = 0
|
Not zero
|
jbr17
|
---
|
Not specifiable
|
jsa17
|
SAT = 1
|
Saturated
|
[Description]
- | jbr17 cannot be described. |
- | If the following is specified for disp17, the assembler generates one bcond machine instruction. |
(a) | Absolute expression having a value in the range of -65,536 to +65,535 |
(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 -65,536 to +65,536 is specified as disp17, 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 disp17, the assembler outputs the following message and stops assembling. |
E0550226 : illegal operand (must be even displacement)
|