Computer Hardware User Manual

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