In 8085 Instruction set, we are having one mnemonic JC a16, which stands for “Jump if Carry” and “a16” stands for any 16-bit address. This instruction is used to jump to the address a16 as provided in the instruction. But as it is a conditional jump so it will happen if and only if the present carry flag value is 1.If carry flag value is 0, program flow continues sequentially. It is a 3-Byte instruction.
|Mnemonics, Operand||Opcode(in HEX)||Bytes|
Let us consider one example of this instruction type JC 4000H. It is a 3-Byte instruction. The result of execution of this instruction is shown below with an example.
|2000||37||STC||Set Cy flag bit. So Cy = 1|
|2001||D2||JC 4000||Jump Carry, i.e. Jump when Cy = 1|
|2002||00||Low order Byte of the target address|
|2003||40||High order Byte of the target address|
PC ← 4000H, So the program control will be transferred to the address 4000H
|2004||78||MOV A, B||This instruction will not get control now as JC will transfer the control to the memory address 4000H|
|4000||41||MOV B, C||Next instruction at address 4000H will get the control|
The timing diagram against this instruction JC 4000H execution is as follows –
Summary − So this instruction JC requires 3-Bytes, 3-Machine Cycles (Opcode Fetch, Memory Read, MemoryRead) and 10 T-States for execution as shown in the timing diagram.