![](http://datasheet.mmic.net.cn/260000/PTM1300FBEA_datasheet_15959396/PTM1300FBEA_388.png)
TM1300 Data Book
Philips Semiconductors
A-102
PRODUCT SPECIFICATION
Interruptible indirect jump on true
SYNTAX
[ IF rguard ] ijmpt rsrc1 rsrc2
FUNCTION
if
rguard
then {
if
(rsrc1& 1) = 1
then {
DPC
←
rsrc2
if
exception is pending
then
service exception
elseif
interrupt is pending
then
service interrupts
else
PC, SPC
←
rsrc2
}
}
DESCRIPTION
The
ijmpt
operation conditionally changes the program flow and allows pending interrupts or exceptions to be
serviced. If no interrupts or exceptions are pending and the LSB of rsrc1 is 1, the DPC, PC, and SPC registers are set
equal to rsrc2 If an exception or interrupt is pending and the LSB of rsrc1is 1, DPC is set equal to rsrc2and a service
routine is invoked, where exceptions have priority over interrupts. If the LSB of rsrc1is 0, program execution continues
with the next sequential instruction.
The
ijmpt
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
177
2
no
—
3
2, 3, 4
EXAMPLES
Initial Values
Operation
Result
r50 = 1, r70 = 0x330
ijmpt r50 r70
program execution continues at 0x330 after
first servicing pending interrupts
since r20 is false, 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 = 0, r70 = 0x330
ijmpt r20 r70
r30 = 0, r50 = 1, r60 = 0x8000
IF r30 ijmpt r50 r60
r40 = 1, r50 = 1, r60 = 0x8000
IF r40 ijmpt r50 r60
SEE ALSO
jmpf jmpt jmpi ijmpf ijmpi
ijmpt