INSTRUCTION SET

S3C84E5/C84E9/P84E9

 

 

CPIJNE — Compare, Increment, and Jump on Non-Equal

CPIJNE

dst,src,RA

 

 

Operation:

If dst–src ¡

"0", PC

PC + RA

 

Ir

Ir +

1

The source operand is compared to (subtracted from) the destination operand. If the result is not "0", the relative address is added to the program counter and control passes to the statement whose address is now in the program counter. Otherwise the instruction following the CPIJNE instruction is executed. In either case the source pointer is incremented by one before the next instruction.

Flags: No flags are affected.

Format:

opc

src

dst

RA

 

 

 

 

Bytes

Cycles

Opcode

Addr Mode

 

 

(Hex)

dst

src

3

12

D2

r

Ir

Example: Given: R1 = 02H, R2 = 03H, and register 03H = 04H:

CPIJNE

R1,@R2,SKIP

R2 = 04H, PC jumps to SKIP location

The working register R1 contains the value 02H, the working register R2 (the source pointer) the value 03H, and the general register 03 the value 04H. The statement "CPIJNE R1,@R2,SKIP" subtracts 04H (00000100B) from 02H (00000010B). Because the result of the comparison is non- equal, the relative address is added to the PC and the PC then jumps to the memory location pointed to by SKIP. The source pointer register (R2) is also incremented by one, leaving a value of 04H.

Remember that the memory location addressed by the CPIJNE instruction must be within the allowed range of + 127 to – 128.

6-32

Page 159
Image 159
Samsung S3C84E5 user manual Cpijne Compare, Increment, and Jump on Non-Equal, Opc Src Dst