Bahasa Rakitan #6 / Bandingkan…Lompat

Melihat judul postingan ini, semoga sudah ada gambaran apa sebetulnya yang akan dibahas pada kesempatan kali ini. namun jika belum ada gambaran, ya coba kita sama-sama gambarkan (pelajaran menggambar pemahaman mode onšŸ™‚ )

Dalam kita menyusun instruksi adakalanya kita menginginkan instruksi yang akan dikerjakan selanjutnya bukan urutan yang tepat dibawahnya. atau malah mungkin kita ingin instruksi yang dikerjakan harus ada kriterianya terlebih dahulu alias harus memenuhi kriteria yang ditetapkan. nah..kalau ini terjadi gimana? padahal setahu kita bahasa rakitan itu secara struktural terus akan mengurut membaca intruksi ke urutan tepat dibawahnya.

Don’t worry be happy…!! Bahasa Rakitan sudah menyediakan koq instruksi-instruksi yang bisa membantu kita untuk memenuhi keinginan seperti diatas. Ā secara garis besar dalam bahasa rakitan ada 2 Ā lompatan :

1. Lompatan Tak Bersyarat ( Unconditional Jump )

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.

.model small
.code
org 100h
mulai:

mov ah,02h
mov dl,65
mov cx,15
ulang:

int 21h
inc dl
jmp exit

loop ulang

exit : int 20h
end mulai

contoh code diatas akan menghasilkan output A, karena saat sebelum membaca perintah loop maka code akan langsung lompat ke label exit.

2. Lompat Bersyarat ( Conditional Jump )

Pada perintah ini, lompatan akan dilakukan apabila kondisi perbandingan terpenuhi.

CMP akan membandingkan operand1 dengan operand2,Ā CMP tidak mempengaruhi nilai Operand1 dan Operand2.

Perinta CMP biasanya dipasangkan dengan jenis perintah lompat seperti contoh berikut :

mov ah,02h
mov dl,65
mov cx,15
ulang:
CMP dl,67
JE cetak
inc dl
loop ulang
cetak : int 21h

code diatas akan menghasilkan output huruf Ā C, karena pada saat menemukan CMP dl, 67 akan dibandingkan isi dl dengan 67. kemudian saat menemukan perintahĀ JE cetak maka akan langsung lompat ke label cetak karena pada saat dl berisi 67 maka akan menghasilkan kondisi benar (JE=Jump if Equal).

Ā Instruksi lompat bersyarat bisa lihat di bawah ini ( terus terang tabel dibawah ini hasil nge-crop dari refrensi yang adašŸ˜‰ jadi kalau kurang jelas klik saja tabel nya):

Untuk latihan, coba dech buat program yang mampu mengeluarkan di layar huruf H dengan pemberian nilai awal dl=65. kemudian dengan mengacu pada tabel diatas, buatlah program yang mampu mengeluarkan huruf FGHIJKLMN dengan pemberian nilai dl=65.

Hidup di Dunia Tidak ada Yang GRATIS..!! semua butuh perjuangan bahkan kadang sampai pengorbanan..;-)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: