Omron C200HX ユーザーズマニュアル

ページ / 564
152
Precautions
DIFU(13) and DIFD(14) operation can be uncertain when the instructions are
programmed between IL and ILC, between JMP and JME, or in subroutines. Re-
fer to 5-10 INTERLOCK and INTERLOCK CLEAR – IL(02) and ILC(03)5-11
JUMP and JUMP END – JMP(04) and JME(05)
, and 5-23 Subroutines and Inter-
rupt Control
 for details.
In diagram A, below, whenever CMP(20) is executed with an ON execution
condition it will compare the contents of the two operand words (HR 10 and DM
0000) and set the arithmetic flags (GR, EQ, and LE) accordingly. If the execution
condition remains ON, flag status may be changed each cycle if the content of
one or both operands change. Diagram B, however, is an example of how
DIFU(13) can be used to ensure that CMP(20) is executed only once each time
the desired execution condition goes ON.
00000
CMP(20)
HR 10
DM 0000
Diagram A
22500
CMP(20)
HR 10
DM 0000
Diagram B
DIFU(13) 22500
00000
Address
Instruction
Operands
00000
LD
00000
00001
CMP(20)
HR
10
DM
0000
Address
Instruction
Operands
00000
LD
00000
00001
DIFU(13)
22500
00002
LD
22500
00003
CMP(20)
HR
10
DM
0000
Although a differentiated form of MOV(21) is available, the following diagram
would be very complicated to draw using it because only one of the conditions
determining the execution condition for MOV(21) requires differentiated treat-
ment.
22500
MOV(21)
HR 10
DM 0000
DIFU(13) 22500
00000
00001
00002
00003
00004
00005
Address
Instruction
Operands
00000
LD
00000
00001
DIFU(13)
22500
00002
LD
22500
00003
LD
00001
00004
AND NOT
00002
00005
AND NOT
00003
00006
OR LD
---
00007
LD 00004
00008
AND NOT
00005
00009
OR LD
---
00010
MOV(21)
HR
10
DM
0000
Example 1: 
When There is No
Differentiated Instruction
Example 2: 
Simplifying Programming
Bit Control Instructions
Section 5-9