In 8085 Instruction set,we are having one mnemonic JNC a16, which stands for “Jump if Not 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 0. If carry flag value is 1, 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 JNC 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||3F||CMC||Complement Cy flag bit. So Cy = 0|
|2002||D2||JNC 4000||Jump Not Carry, i.e. Jump when Cy = 0|
|2003||00||Low order Byte of the target address|
|2004||40||High order Byte of the target address|
PC ← 4000H, So the program control will be transferred to the address 4000H
|2005||78||MOV A, B||This instruction will not get control now as JNC 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 JNC 4000H execution is as follows –
Summary − So this instruction JNC requires 3-Bytes, 3-Machine Cycles (Opcode Fetch, Memory Read, MemoryRead) and 10 T-States for execution as shown in the timing diagram.