Sunday, 23 February 2025

Conditional Instructions

 Program execution transfer instructions in 8086 microprocessor

Program execution transfer instructions are similar to branching instructions and refer to the act of switching execution to a different instruction sequence as a result of executing a branch instruction.

The two types of program execution transfer instructions are:

  1. Unconditional
  2. Conditional

1. Unconditional Program Execution Transfer Instructions – These instruction always execute.

Opcode

Operand

Explanation

Example

CALL

address

calls a subroutine and saves the return address on the stack

CALL 2050

RET

none

returns from the subroutine to the main program

RET

JUMP

address

transfers the control of execution to the specified address

JUMP 2050

LOOP

address

loops through a sequence of instructions until CX=0

LOOP 2050

Here the address can be specified directly or indirectly.

2. Conditional Program Execution Transfer Instructions : These instructions only execute when the specified condition is true.

Opcode

Operand

Explanation

Example

JC

address

jump if CF = 1

JC 2050

JNC

address

jump if CF = 0

JNC 2050

JZ

address

jump if ZF = 1

JZ 2050

JNZ

address

jump if ZF = 0

JNZ 2050

JO

address

jump if OF = 1

JO 2050

JNO

address

jump if OF = 0

JNO 2050

JP

address

jump if PF = 1

JP 2050

JNP

address

jump if PF = 0

JNP 2050

JPE

address

jump if PF = 1

JPE 2050

JPO

address

jump if PF = 0

JPO 2050

JS

address

jump if SF = 1

JS 2050

JNS

address

jump if SF = 0

JNS 2050

JA

address

jump if CF=0 and ZF=0

JA 2050

JNBE

address

jump if CF=0 and ZF=0

JNBE 2050

JAE

address

jump if CF=0

JAE 2050

JNB

address

jump if CF=0

JNB 2050

JBE

address

jump if CF = 1 or ZF = 1

JBE 2050

JNA

address

jump if CF = 1 or ZF = 1

JNA 2050

JE

address

jump if ZF = 1

JE 2050

JG

address

jump if ZF = 0 and SF = OF

JG 2050

JNLE

address

jump if ZF = 0 and SF = OF

JNLE 2050

JGE

address

jump if SF = OF

JGE 2050

JNL

address

jump if SF = OF

JNL 2050

JL

address

jump if SF != OF

JL 2050

JNGE

address

jump if SF != OF

JNGE 2050

JLE

address

jump if ZF = 1 or SF != OF

JLE 2050

JNG

address

jump if ZF = 1 or SF != OF

JNG 2050

JCXZ

address

jump if CX = 0

JCXZ 2050

LOOPE

address

loop while ZF = 1 and CX = 0

LOOPE 2050

LOOPZ

address

loop while ZF = 1 and CX = 0

LOOPZ 2050

LOOPNE

address

loop while ZF = 0 and CX = 0

LOOPNE 2050

LOOPNZ

address

loop while ZF = 0 and CX = 0

LOOPNZ 2050

Here the address can be specified directly or indirectly.
CF is carry flag
ZF is zero flag
OF is overflow flag
PF is parity flag
SF is sign flag
CX is the register

 

No comments:

Post a Comment

Desktop Virtualisation

Desktop Virtualization ( DV ) Desktop Virtualization ( DV ) is a technique that creates an illusion of a desktop provided to the user. It d...