Nama : Muhammad Luthfi
Kelas : 1CA
NIM : 061430700516


Dua post dalam 1 malam :) Kali ini bahasannya adalah protel yaitu perintah JUMP. Adapun perintah JUMP berguna untuk melompat ke statement tertentu apabila syarat terpenuhi. Bila syarat tidak terpenuhi, maka perintah jump tak akan terpenuhi dan akan lanjut ke perintah dibawahnya (Tidak melompat)


Ada cukup banyak perintah syntax jump yang harus diketahui :

-----------------------------+----------------------------------
 Perintah Lompat | Kondisi
-----------------------------+----------------------------------
JA <Jump If Above> | Lompat, jika Operand1 > Operand2
 | untuk bilangan tidak bertanda

JG <Jump If Greater> | Lompat, jika Operand1 > Operand2
 | untuk bilangan bertanda

JE <Jump If Equal> | Lompat, jika Operand1 = Operand2

JNE <Jump If Not Equal> | Lompat, jika Operand1 tidak sama
 | dengan Operand2

JB <Jump If Below> | Lompat, jika Operand1 < Operand2
 | untuk bilangan tidak bertanda

JL <Jump If Less> | Lompat, jika Operand1 < Operand2
 | untuk bilangan bertanda

JBE <Jump If Below or Equal>| Lompat, jika operand1 <= Operand2
 | untuk bilangan tidak bertanda

JLE <Jump If Less or Equal> | Lompat, jika Operand1 <= Operand2
 | untuk bilangan bertanda

JAE <Jump If Above or Equal>| Lompat, jika Operand1 >= Operand2
 | untuk bilangan tidak bertanda

JGE <Jump If Greater or | Lompat, jika Operand1 >= Operand2
 Equal> | untuk bilangan bertanda

-----------------------------+----------------------------------
Sumber : Buku pengantar bahasa rakitan



Sekarang mari kita coba cara menggunakan contoh fungsi jump paling sederhana:
1. Tentu saja hal pertama kali yang harus dilakukan adalah membuka Program bahasa assembly. Jika lupa cara membuka nya, klik Bahasa Assemble

2. Ketik code dibawah ini secara runtut dan lengkap.
.MODEL SMALL
.CODE
ORG 100H

TData : JMP Proses
BilA DB 15
BilB DB 10
Kal1 DB 'B lebih baik$'
Kal2 DB 'A lebih baik$'

Proses :
MOV AL,BilA
CMP AL,BilB
JB Abaik
JA Bbaik

Abaik :
LEA DX, Kal1
JMP Cetak

Bbaik :
LEA DX, Kal2

Cetak :
MOV AH,09
INT 21H

EXIT : INT 20H
END TData



Ketika hasil dijalankan (Jika lupa cara menampilkan -> Bahasa Assemble) Hasil yang akan keluar adalah

A lebih baik

Apabila ketentuannya diubah, misal :
BilA DB 10
BilB DB 15

Output :

B lebih baik



Penjelasannya :

1. Output program JMP ini tergantung dari input bilangan A dan B. Program otomatis akan mendeteksi mana bilangan yang lebih besar dan akan menentukan mana yang lebih baik berdasarkan satuan yang telah ditentukan walau A= 1000 dan B=2000 hasilnya tetap B lebih baik.

2. Mengapa bisa? Menurut pembelajaran dari saya, kunci statemen itu terletak pada JB dan JA. (Scroll keatas- tabel fungsi jump). JA (Jump if above -  Lompat jika operand 1 > operand 2) dan JB (Jump if below - Lompat jika operand 1 < operand 2). Berdasarkan program diatas, karena B yang lebih besar maka fungsi JMP yang berjalan adalah JB karena B>A. Sebaliknya fungsi JMP yang berjalan adalah JA apabila B<A.

3. Kalimatnya berasal dari statemen yang dibuat pada Abaik, karena pada fungsi JMP JB diatas, lompat ke statemen 'Abaik'. Statemen Abaik sendiri berisi LEA DX Kal1, yang berarti mengambil offset di Kal1 dan JMP Cetak, melompat ke statemen cetak dimana di statemen cetak berisi MOV AH,09 yang merupakan servis untuk mencetak kalimat

4. Perhatikan juga fungsi CMP, dimana fungsi tersebut berguna untuk membandingkan dua operand. tanpa CMP, kode diatas akan tidak berjalan.


Sekian posting saya mengenai fungsi jump bagian 1, pada bagian 2 akan dijelaskan cara menggunakan fungsi jump dengan cara berbeda.






1 comments:

> Berkomentarlah dengan bahasa yang baik dan bisa dimengerti
> Komentarlah dengan menggunakan Open ID (Google dll.)
x OOT ( Out Of Topic)
x Spam
x Link Iklan/promosi tanpa seizin saya