PROGRAM MENCETAK KARAKTER dengan JMP dan CMP pada Assembly.




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 :)

No comments:

Post a Comment