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.
Subscribe to:
Post Comments (Atom)
sangat bermanfaat
ReplyDeleteSolder portable