Perintah JMP(JUMP) ini digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah
JUMP. Adapun syntaxnya adalah :
JUMP Tujuan
Jump Instructions in 8086 Microprocessor
In this article, we are going to study about the various Jump instructions that are used for
changing the flow of the instruction execution in the 8086 microprocessor.
Submitted by Monika Sharma, on July 26, 2019
Jump Instructions are used for changing the flow of execution of instructions in the processor.
If we want jump to any instruction in between the code, then this can be achieved by these
instructions. There are two types of Jump instructions:
1. Unconditional Jump Instructions
2. Conditional Jump Instructions
1) Unconditional Jump Instructions
These instructions are used to jump on a particular location unconditionally, i.e. there is no need
to satisfy any condition for the jump to take place. There are three types of procedures used for
unconditional jump. They are:
i. NEAR – This procedure targets within the same code segment. (Intra-segment)
ii. SHORT - This procedure also targets within the same code segment, but the offset is 1
byte long. (Intra-segment)
iii. FAR - In this procedure, the target is outside the segment and the size of the pointer is
double word. (Inter-segment)
Syntax: JMP procedure_namememory_location
Example: JMP short target
2) Conditional Jumps
In these types of instructions, the processor must check for the particular condition. If it is true,
then only the jump takes place else the normal flow in the execution of the statements is
maintained.
The ALU operations set flags in the status word (Flag register). The conditional jump statements
tests the flag and jump is the flag is set.
There are following types of conditional jump instructions:
i) JC : Stands for 'Jump if Carry'
It checks whether the carry flag is set or not. If yes, then jump takes place, that is: If CF = 1,
then jump.
ii) JNC : Stands for 'Jump if Not Carry'
It checks whether the carry flag is reset or not. If yes, then jump takes place, that is: If CF = 0,
then jump.
iii) JE / JZ : Stands for 'Jump if Equal' or 'Jump if Zero'
It checks whether the zero flag is set or not. If yes, then jump takes place, that is: If ZF = 1, then
jump.
iv) JNE / JNZ : Stands for 'Jump if Not Equal' or 'Jump if Not Zero'
It checks whether the zero flag is reset or not. If yes, then jump takes place, that is: If ZF = 0,
then jump.
v) JP / JPE : Stands for 'Jump if Parity' or 'Jump if Even Parity'
It checks whether the Parity flag is set or not. If yes, then jump takes place, that is: If PF = 1,
then jump.
vi) JNP / JPO : Stands for 'Jump if Not Parity' or 'Jump if Odd Parity'
It checks whether the Parity flag is reset or not. If yes, then jump takes place, that is: If PF = 0,
then jump.
Perinta penjelasan
h
JE Lompatan akan menuju subprogram yang dituju jika ZF = 1, tetapi jika
ZF = 0 maka tidak akan terjadi lompatan dan program akan
melaksanakan instruksi selanjutnya.Instruksi ini biasa digunakan dalam
berbandingan dua angka tidak bertanda.Contoh : CMP CX,BX
JNE Instruksi ini akan menyebabkan melompat melanjutkan ke subprogram
yang dituju jika bit Zero Flag ( ZF ) = 0, tetapi jika hasilnya ZF = 1
maka program akan menjalankan instruksi selanjutnya.Instruksi ini biasa
digunakan dalam berbandingan dua angka tidak bertanda.Contoh : CMP
AX,BX
JG Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika ZF = 0 dan SF = OF( overflow flag), tetapi jika ZF = 1
atau SF ≠ OF maka program akan melanjutkan ke instruksi selanjutnya.
Instruksi ini biasa digunakan dalam berbandingan dua angka tidak
bertanda.Contoh : CMP AX, 0102
JGE Instruk ini akan menyebabkan melompat melanjutkan ke subprogram
yang dituju jika SF = OF , tetapi jika SF ≠ OF tidak akan terjadi
lompatan dan program akan melanjutkan ke instruksi berikutnya.
Instruksi ini biasa digunakan dalam berbandingan dua angka tidak
bertanda.Contoh : CMP AL,25
JNG Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika SF ≠ OF atau ZF = 1, tetapi jika SF = OF dan ZF = OF
maka tidak akan terjadi lompatan dan program akan melanjutkan
instruksi selanjutnya. Instruksi ini biasa digunakan dalam berbandingan
dua angka tidak bertanda.Contoh : CMP AX, 90
JNGE Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika SF ≠ OF, tetapi jika SF = OF maka tidak akan terjadi
lompatan tetapi melanjutkan ke instruksi selanjutnya. Instruksi ini biasa
digunakan dalam berbandingan dua angka tidak bertanda.Contoh : CMP
AX, 1000
JA Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika CF = 0 dan XF = 0, tetapi jika CF = 1 dan ZF = 1 maka
tidak akan terjadi lompatan dan program akan melanjutkan ke instruksi
selanjutnya. Instruksi ini biasa digunakan dalam berbandingan dua angka
tidak bertanda.Contoh : CMP AL,90H
JAE Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika CF = 0, tetapi jika CF = 1 atau ZF = 1 maka tidak
JNA Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika CF = 1 atau ZF = 1, tetapi jika CF = 0 dan ZF = 0 maka
tidak akan terjadi lompatan tetapi program akan melanjutkan ke instruksi
selanjutnya. Instruksi ini biasa digunakan pada perbandingan dua angka
tidak bertanda.Contoh : CMP BL, 0B6H
JNAE nstruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika CF = 1, tetapi jika CF = 0 maka tidak akan terjadi
lompatan dan program akan melanjutkan ke instruksi selanjutnya.Contoh
: CMP AX, BX
JS Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika bit SF = 1, tetapi jika SF = 0 maka tidak terjadi
lompatan tetapi program akan melanjutkan ke instruksi selanjutnya.
Instruksi ini biasa digunakan pada perbandingan dua angka tidak
bertanda.Contoh : DEC AX
JNS Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika bit SF = 0, tetapi jika SF = 1 maka tidak terjadi
lompatan dan program akan melanjutkan ke instruksi selanjutnya.
Instruksi ini biasa digunakan pada perbandingan dua angka tidak
bertanda dan biasa digunakan setelah instruksi ADD, SUB, INC dan
lain- lain.Contoh : SUB BX, 1000
JNC Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram
yang dituju jika CF = 0 , tetapi jika CF = 1 maka tidak akan terjadi
lompatan dan program akan melanjutkan instruksi selanjutnya. Instruksi
ini biasa digunakan pada perbandingan dua angka tidak
bertanda.Contoh : ADC BX, 48
JCXZ Instruksi ini akan menyebabkan meloncat ke subprogram yang dituju
jika register CX menjadi berisi 0, tetapi jika CX ≠ 0 maka program akan
melanjutkan ke instruksi selanjutnya.Contoh : JCXZ Cetak