PENGAMBILAN KEPUTUSAN
INSTRUKSI JUMP Secara umum, lompatan pada bahasa rakitan dapat dibagi menjadi dua tipe, yaitu : Unconditional Jump (Lompatan tidak bersyarat) Unconditional jump adalah instruksi lompatan yang digunakan tanpa melihat kondisi dari program. Instruksi yang biasanya digunakan untuk melakukan unconditional jump ini adalah instruksi JMP, dengan sintak : JMP Tujuan Conditional Jump (Lompatan bersyarat) Berbeda dari unconditional jump, conditional jump adalah instruksi lompatan yang digunakan dengan melihat kondisi dari program. Instruksi conditional jump selalu mengikuti instruksi CMP (untuk melihat kondisi dari program).
Instruksi CMP Instruksi CMP digunakan untuk membandingkan dua buah operand, dengan sintaks: CMP Operand1, Operand2 Flag yang terpengaruh oleh instruksi CMP ini adalah 1. OF Bernilai 1, jika operand1 < operand2, pada operasi bilangan bertanda 2. SF 3. ZF Bernilai 1, jika operand1 = operand2 4. CF Bernilai 1, jika operand1 < operand2, pada operasi bilangan tidak bertanda
Jenis-jenis lompatan bersyarat Jenis-jenis dari lompatan bersyarat ditunjukkan pada tabel berikut : Perintah lompat Kondisi Lompat Keterangan JA (Jump if above) Operand1 > Operand2 Bilangan bertanda JAE (Jump if above or equal) Operand1 >= Operand2 JNB (Jump if not below) Operand1 >= Operand2, (sama dengan JAE) JNBE (Jump if not below nor equal) Operand1 > Operand2, (sama dengan JA) JL (Jump if less) Operand1 < Operand2 JLE (Jump if less or equal) Operand1 <= Operand2 JNG (Jump if not greater) (sama dengan JLE) JNGE (Jump if not greater nor equal) (sama dengan JL)
Perintah lompat Kondisi Lompat Keterangan JG (Jump if greater) Operand1 > Operand2 Bilangan tidak bertanda JGE (Jump if greater or equal) Operand1 >= Operand2 JNL (Jump if not less) (sama dengan JGE) JNLE (Jump if not less nor equal) (sama dengan JG) JB (Jump if below) Operand1 < Operand2 JBE (Jump if below or equal) Operand1 <= Operand2 JNA (Jump if not above) Operand1 <= Operand2, (sama dengan JBE) JNAE (Jump if not above nor equal) (sama dengan JB)
Perintah lompat Kondisi Lompat Keterangan JE (Jump if equal) Operand1 = Operand2 JNE (Jump if not equal) Operand1 ≠ Operand2 JC (Jump if carry) CF=1 JNC (Jump if not carry) CF=0 JO (Jump if overflow) OF=1 JNO (Jump if not overflow) OF=0 JP (Jump if parity) PF=1 JNP (Jump if not parity) PF=0 JPE (Jump if parity even) Paritas genap JPO (Jump if parity odd) Paritas ganjil JS (Jump if sign) SF=1 JNS (Jump if not sign) SF=0 JZ (Jump if zero) ZF=1 JNZ (Jump if not zero) ZF=0