187
Interrupt Functions Section 5-1
a. The following example shows duplicate processing by an interrupt
task, which interrupts processing of a +B instruction between the first
and third operands and overwrites the same memory address.
The interrupt occurs during processing of the +B instruction and the result is
saved temporarily without being written to the destination word (D0).
The interrupt task transfers the value of #0010 to D0, but the saved result of
the +B instruction (1235) is written to D0 when processing returns to the cyclic
task. In the end, the interrupt task’s processing has no effect.
Prevention of Duplicate Processing
+B
D0
#0001
D0
MOV
#0010
D0
D0
1234
0010
1235
Processing
interrupted.
Cyclic task
Interrupt task
Read D0 value (1234).
BCD addition: 1234 + 1 = 1235
Interrupt occurs.
MOV executed
0010 moved to D0.
Interrupt completed.
Data saved.
Addition result (1235)
Write addition result (1235).
Processing
of +B
instruction
Processing
continues.
Flow of Processing
+B
D0
#0001
D0
DI
EI
Cyclic task
Disables execution of
interrupt programs.
Enables execution of
interrupt programs.