
TM1300 Data Book
Philips Semiconductors
A-100
PRODUCT SPECIFICATION
Interruptible indirect jump on false
SYNTAX
[ IF rguard ] ijmpf rsrc1 rsrc2
FUNCTION
if
rguard
then {
if
(rsrc1& 1) = 0
then {
DPC
←
rsrc2
if
exception is pending
then
service exception
elseif
interrupt is pending
then
service interrupts
else
PC, SPC
←
rsrc2
}
}
DESCRIPTION
The
ijmpf
operation conditionally changes the program flow and allows pending interrupts or exceptions to be
serviced. If neither interrupts or exceptions are pending and the LSB of rsrc1is 0, the DPC, PC, and SPC registers are
set equal to rsrc2 If an interrupt or exception is pending and the LSB of rsrc1 is 0, DPC is set equal to rsrc2 and the
service routine is invoked, where exceptions have priorities over interrupts. If the LSB of rsrc1 is 1, program execution
continues with the next sequential instruction.
The
ijmpf
operation optionally takes a guard, specified in rguard If a guard is present, its LSB adds another
condition to the jump. If the LSB of rguard is 1, the instruction executes as previously described; otherwise, the jump
will not be taken and PC, DPC, and SPC are not modified regardless of the value of rsrc1
ATTRIBUTES
Function unit
Operation code
Number of operands
Modifier
Modifier range
Delay
Issue slots
branch
181
2
no
—
3
2, 3, 4
EXAMPLES
Initial Values
Operation
Result
r50 = 0, r70 = 0x330
ijmpf r50 r70
program execution continues at 0x330 after
first servicing pending interrupts
since r20 is true, program execution contin-
ues with next sequential instruction
since guard is false, program execution con-
tinues with next sequential instruction
program execution continues at 0x8000 after
first servicing pending interrupts
r20 = 1, r70 = 0x330
ijmpf r20 r70
r30 = 0, r50 = 0, r60 = 0x8000
IF r30 ijmpf r50 r60
r40 = 1, r50 = 0, r60 = 0x8000
IF r40 ijmpf r50 r60
SEE ALSO
jmpf jmpt jmpi ijmpt ijmpi
ijmpf