Samsung S3F80JB Cpijne Compare, Increment, and Jump on Non-Equal, If dst src 0, PC ← PC + RA

Models: S3F80JB

1 346
Download 346 pages 34.13 Kb
Page 160
Image 160

INSTRUCTION SETS3F80JB

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

NOTE: Execution time is 18 cycles if the jump is taken or 16 cycles if it is not taken.

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

CPIJNER1,@R2,SKIP R2 = 04H, PC jumps to SKIP location

Working register R1 contains the value 02H, working register R2 (the source pointer) the value 03H, and 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 must be within the allowed range of + 127 to – 128.)

6-32

Page 160
Image 160
Samsung S3F80JB manual Cpijne Compare, Increment, and Jump on Non-Equal, If dst src 0, PC ← PC + RA, Instruction