7 DETAILS OF INSTRUCTIONS
S1C17 FAMILY S1C17 CORE MANUAL
EPSON
7-47
jrult
sign7
jrult.d sign7
Function
Conditional PC relative jump (for judgment of unsigned operation results)
Standard)
pc
← pc + 2 + sign7 × 2 if C is true
Extension 1) pc
← pc + 2 + sign21 if C is true
Extension 2) pc
← pc + 2 + sign24 if C is true
Code
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
0 0 0 0 1 1 0 0 0
sign7
jrult
|
0 0 0 0 1 1 0 0 1
sign7
jrult.d
|
Flag
IL IE
C
V
Z
N
– – – – – –
|
Mode
Signed PC relative
CLK
jrult
Two cycles (when not branched), Three cycles (when branched)
jrult.d
Two cycles
Description (1) Standard
jrult
sign7 ; = "jrult sign8", sign7 = sign8(7:1), sign8(0)=0
If the condition below has been met, this instruction doubles the signed 7-bit immediate sign7
and adds it to the PC (PC + 2) for branching the program flow to the address. It does not branch
if the condition has not been met.
C flag = 1 (e.g. “A < B” has resulted by cmp A,B)
The sign7 specifies a word address in 16-bit units.
The sign7 (
×2) allows branches within the range of PC - 126 to PC + 128.
(2) Extension 1
ext
imm13 ; = sign21(20:8)
jrult
sign7 ; = "jrult sign21", sign7 = sign21(7:1), sign21(0)=0
The ext instruction extends the displacement to be added to the PC (PC + 2) into signed 21
bits using its 13-bit immediate data imm13. The sign21 allows branches within the range of PC
- 1,048,574 to PC + 1,048,576.
(3) Extension 2
ext
imm13 ; imm13(2:0)= sign24(23:21)
ext
imm13 ; = sign24(20:8)
jrult
sign7 ; = "jrult sign24", sign7 = sign24(7:1), sign24(0)=0
The ext instructions extend the displacement to be added to the PC (PC + 2) into signed 24
bits using their 13-bit immediates (imm13
× 2). The sign24 allows branches within the range of
PC - 8,388,606 to PC + 8,388,608.
(4) Delayed branch (d bit (bit 7) = 1)
jrult.d
sign7
For the jrult.d instruction, the next instruction becomes a delayed slot instruction. A delayed
slot instruction is executed before the program branches. Interrupts are masked in intervals
between the jrult.d instruction and the next instruction, so no interrupts occur.
Example
cmp
%r0,%r1
; r0 and r1 contain unsigned data.
jrult
0x2
; Skips the next instruction if r0 < r1.
Caution
When the jrult.d instruction (delayed branch) is used, be careful to ensure that the next
instruction is limited to those that can be used as a delayed slot instruction. If any other instruction
is executed, the program may operate indeterminately. For the usable instructions, refer to the
instruction list in the Appendix.