Assalamu’alaikum Wr.wb
Sedikit
penjelasan terlebih dahulu :)
BANDINGKAN DAN LOMPAT
LOMPAT
TANPA SYARAT
Perintah JMP(Jump),perintah ini digunakan untuk melompati daerah
data program. Perintah JMP digunakan dengan syntax:
JMP
Tujuan
Perintah JMP ini dikategorikan sebagai Unconditional Jump, karena
perintah ini tidak menyeleksi keadaan apapun untuk melakukan suatu lompatan.
Setiap ditemui perintah ini maka lompatan pasti dilakukan.
Selain dari perintah jump tanpa syarat, masih banyak perintah Jump
yang menyeleksi suatu keadaan tertentu sebelum dilakukan lompatan. Perintah
jump dengan penyeleksian kondisi terlebih dahulu biasanya diikuti dengan
perintah untuk melihat kondisi, seperti membandingkan dengan perintah
"CMP"(Compare).
MEMBANDINGKAN
DENGAN CMP
Perintah
CMP(Compare) digunakan untuk membandingkan 2 buah operand, dengan syntax:
CMP
Operand1,Operand2
CMP akan membandingkan operand1 dengan operand2 dengan cara
mengurangkan operand1 dengan operand2. CMP tidak mempengaruhi nilai Operand1
dan Operand2, perintah CMP hanya akan mempengaruhi flags register sebagai hasil
perbandingan. Adapun flag-flag yang terpengaruh oleh perintah CMP ini adalah:
- OF
akan 1, jika operand1 lebih kecil dari operand2 pada operasi bilangan bertanda.
- SF
akan 1, bila operand1 lebih kecil dari operand2, pada operasibilangan bertanda.
- ZF
akan 1, jika operand1 nilainya sama dengan operand2.
- CF
akan 1, jika operand1 lebih kecil dari operand2 pada operasibilangan tidak bertanda.
Perlu
anda ingat bahwa CMP tidak dapat membandingkan antar 2 lokasi memory.
13.3.
LOMPAT YANG MENGIKUTI CMP
Perintah
CMP yang hanya hanya mempengaruhi flag register, biasanya diikuti dengan
perintah lompat yang melihat keadaan pada flags register ini. Jenis perintah
lompat yang biasanya mengikuti perintah CMP, terdapat 12 buah seperti pada gambar
13.1.
-----------------------------+----------------------------------
Perintah Lompat | Kondisi
-----------------------------+----------------------------------
JA | Lompat, jika Operand1 > Operand2
| untuk bilangan tidak bertanda
JG | Lompat, jika Operand1 > Operand2
untuk bilangan bertanda
JE | Lompat, jika Operand1 = Operand2
JNE | Lompat, jika Operand1 tidak sama
| dengan Operand2
JB | Lompat, jika Operand1 < Operand2
| untuk bilangan tidak bertanda
JL | Lompat, jika Operand1 < Operand2
| untuk bilangan bertanda
JBE | Lompat, jika operand1 <= Operand2
| untuk bilangan tidak bertanda
JLE | Lompat, jika Operand1 <= Operand2
| untuk bilangan bertanda
JAE | Lompat, jika Operand1 >= Operand2
| untuk bilangan tidak bertanda
JGE = Operand2
Equal> | untuk bilangan bertanda
-----------------------------+----------------------------------
terdapat dua operasi yang berbeda, yaitu operasi bilangan bertanda dan
tidak bertanda. Bilangan bertanda adalah bilangan yang akan membedakan bilangan
negatif dan positif (Mis. 37 dan -37). Sedangkan bilangan tidak bertanda adalah
bilangan yang tidak akan membedakan positif dan negatif, jadi angka -1 untuk
operasi bilangan bertanda akan dianggap FFh pada bilangan tidak bertanda.
Penjelasan intruksi yang akan di gunakan :
Apa itu jmp
?
Jmp adalah Perintah JMP(JUMP) yg digunakan untuk melompat menuju tempat yang
ditunjukkan oleh perintah JUMP.
Apa itu cmp Al?
Compare atau disingkat Cmp adalah suatu
perintah untuk membandingkan 2 buah operand.
Apa itu jbe?
Jbe atau
adalah suatu perintah untuk Lompat, jika operand1 & Operand2 | untuk bilangan tidak
bertanda.
Apa itu jae?
Jae atau
adalah suatu perintah untuk Lompat, jika
Operand1 & Operand2
untuk bilangan tidak bertanda
apa itu jb?
Jb atau
adalah suatu
perintah untuk Lompat, jika Operand1 & Operand2
| untuk
bilangan tidak bertanda
Apa itu lea
dx
Lea atau (Load Effective Addres) adalah suatu
perintah Untuk mendapatkan alamat efektive dari suatu data.
Baiklah langsung saja kita buat program di atas dengan
langkah-langkah berikut ini :
1. panggil atau buka
M-DOS ( command prompt ) dari menu start pada dekstop>pilih command
prompt>lalu klik dua kali . atau jika
belum punya Program Software asembly nya
bisa sobat download terlebih dahulu disini downloadProgram Software assembly.
2.lalu akan muncul kotak
dialog dari command prompt yang kita panggil tadi
3.buka lembar kerja
pada command prompt dengan cara
mengetikan edit pada kotak dialog cmd yg dipanggil tadi , lalu enter
4.maka akan muncul
lembar kerja seperti ini
5.ketikkan program
pada lembar kerja edit seperti pada gambar dibawah ini
3.kemudian save program tadi , disini saya
menyimpan dengan nama 5uas.Asm ( Ingat harus berekstensi .Asm ) !
4.setelah disave , kemudian Aktifkan Comand
Promptnya lalu Ketik D: ( atau jika sobat menyimpan program nya di disk C maka Ketik C: ) , lalu enter (lihat gambar 1.1)
gambar 1.1
penjelasan gambar 1.1 :
a. ketik Cd Assembly ( atau folder tempat menyimpan program assembly) ,
Lalu Enter
b. ketik Cd Asm ( atau sub folder tempat
menyimpan program assembly) , Lalu Enter
c. ketik Tasm 5uas ( atau nama file yang sobat
save tadi) , Lalu Enter
d.ketik Tlink –T 5uas, Lalu Enter
e.kemudian ketik nama file 5uas , Tekan Enter maka akan mucul lulus.
lalu untuk menampilkan kalimat lulus bersyarat . ganti uas db nya dengan nilai antara 40-70.lihat gambar dibawah ini ( disini saya menulis dengan nilai 70)
dan hasilnya :
lalu untuk menampilkan kalimat lulus bersyarat . ganti uas db nya dengan nilai antara 0-39.lihat gambar dibawah ini( disini saya memberikan nilai pada uas db yaitu 39)
hasilnya :
PROGRAM MENCETAK KARAKTER BERSYARAT LULUS,TIDAK LULUS dengan JMP dan CMP pada Assembly. berhasil di ekseskusi.
Semoga bermanfaat :) jangan lupa
untuk memberikan + pada materi ini dan blognya :)
Jazzakumullah khoiron
katsiron , nun walqolami wama yasturun , Wassalamua’laikum wr.wb :)
Belum ada tanggapan untuk " PROGRAM MENCETAK KARAKTER dengan JMP dan CMP pada Assembly."
Post a Comment