bandingkan dan lompat.doc
TRANSCRIPT
-
8/17/2019 BANDINGKAN DAN LOMPAT.doc
1/6
Bahasa Rakitan By Okti Yudhanti Nur K
BANDINGKAN DAN LOMPAT
13.1. LOMPAT TANPA SYARATPerintah JMP(Jump), sudah pernah kita gunakan, dimana perintah ini
digunakan untuk melompati daerah data program. Perintah JMPdigunakan dengan syntax:
JMP TujuanPerintah JMP ini dikategorikan sebagai Unconditional Jump, karenaperintah ini tidak menyeleksi keadaan apapun untuk melakukan suatulompatan.Setiap ditemui perintah ini maka lompatan pasti dilakukan. Selain dariperintah ump tanpa syarat, masih banyak perintah Jump yangmenyeleksi suatu keadaan tertentu sebelum dilakukan lompatan.Perintah ump dengan penyeleksian kondisi terlebih dahulu biasanyadiikuti dengan perintah untuk melihat kondisi, seperti membandingkan
dengan perintah !"MP!("ompare).
13.2. MEMBANDINGKAN DENGAN CMPPerintah "MP("ompare) digunakan untuk membandingkan # buahoperand, dengan syntax:
CMP Operand1Operand2"MP akan membandingkan operand$ dengan operand# dengan caramengurangkan operand$ dengan operand#. "MP tidak mempengaruhinilai %perand$ dan %perand#, perintah "MP hanya akan mempengaruhi&ags register sebagai hasil perbandingan. 'dapun &ag&ag yangterpengaruh oleh perintah "MP ini adalah:
% akan $, ika operand$ lebih kecil dari operand# pada operasibilangan bertanda.
S akan $, bila operand$ lebih kecil dari operand#, pada operasi
bilangan bertanda.
* akan $, ika operand$ nilainya sama dengan operand#.
" akan $, ika operand$ lebih kecil dari operand# pada operasi
bilangan tidak bertanda.
Perlu anda ingat bah+a "MP tidak dapat membandingkan antar # lokasimemory.
13.3. LOMPAT YANG MENGIK!TI CMPPerintah "MP yang hanya mempengaruhi &ag register, biasanya diikutidengan perintah lompat yang melihat keadaan pada &ags register ini. Jenis perintah lompat yang biasanya mengikuti perintah "MP, terdapat$# buah seperti pada gambar $.$.
1
-
8/17/2019 BANDINGKAN DAN LOMPAT.doc
2/6
Bahasa Rakitan By Okti Yudhanti Nur K
""""""""""""""""""""""""""""""""""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""
Per$n%a& L'(pa% ) K'nd$*$"""""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""
JA +Ju(p I, A-'e/ ) L'(pa% j$0a Operand1 / Operand2) un%u0 -$anan %$da0 -er%anda
JG +Ju(p I, Grea%er/ ) L'(pa% j$0a Operand1 / Operand2) un%u0 -$anan -er%anda
JE +Ju(p I, Eua/ ) L'(pa% j$0a Operand1 4 Operand2 JNE +Ju(p I, N'% Eua/ ) L'(pa% j$0a Operand1 %$da0 *a(a
) denan Operand2
JB +Ju(p I, Be'5/ ) L'(pa% j$0a Operand1 + Operand2) un%u0 -$anan %$da0 -er%anda JL +Ju(p I, Le**/ ) L'(pa% j$0a Operand1 +Operand2
) un%u0 -$anan -er%anda JBE +Ju(p I, Be'5 'r Eua/ ) L'(pa% j$0a 'perand1 +4Operand2
) un%u0 -$anan %$da0 -er%anda JLE +Ju(p I, Le** 'r Eua/ ) L'(pa% j$0a Operand1 +4Operand2
) un%u0 -$anan -er%anda
JAE +Ju(p I, A-'e 'r Eua/ ) L'(pa% j$0a Operand1 /4Operand2
) un%u0 -$anan %$da0 -er%anda JGE +Ju(p I, Grea%er 'r ) L'(pa% j$0a Operand1 /4Operand2Eua/ ) un%u0 -$anan -er%anda"""""""""""""""""""""""""""""""""""""""""""""#""""""""""""""""""""""""""""""""""
Ga(-ar 13.1. Per$n%a& Ju(p 6an (en$0u%$ CMP
Pada tabel $.$. dapat anda lihat bah+a terdapat dua operasi yangberbeda, yaitu operasi bilangan bertanda dan tidak bertanda. -ilangan
bertanda adalah bilangan yang akan membedakan bilangan negati danpositi(Mis. / dan /). Sedangkan bilangan tidak bertanda adalahbilangan yang tidak akan membedakan positi dan negati, adi angka $untuk operasi bilangan bertanda akan dianggap h pada bilangan tidakbertanda. 0ebih auh mengenai bilangan bertanda dan tidak ini bisaanda lihat pada bab$.78444444444444444444444444444444444444444444497
2
-
8/17/2019 BANDINGKAN DAN LOMPAT.doc
3/6
Bahasa Rakitan By Okti Yudhanti Nur K
7 Pr'ra( : CMPJ.ASM 77 Au%&'r : S;%' 77
-
8/17/2019 BANDINGKAN DAN LOMPAT.doc
4/6
Bahasa Rakitan By Okti Yudhanti Nur K
Pada gambar $.$. anda telah melihat sebagian dari perintah lompatbersyarat. 2ini akan kita lihat lompat bersyarat lainnya yang tersedia,seperti pada gambar $.#. 3idak seperti lompat tanpa syarat, 0ompatbersyarat hanya dapat melompat menuu label yang berarak $#4sampai 5$#/ byte dari tempat lompatan.
"""""""""""""""""""""""""""""""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""Per$n%a& L'(pa% ) K'nd$*$"""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""
JA +Ju(p I, A-'e/ ) L'(pa% j$0a Operand1 / Operand2) un%u0 -$anan %$da0 -er%anda
JG +Ju(p I, Grea%er/ ) L'(pa% j$0a Operand1 / Operand2) un%u0 -$anan -er%anda
JE +Ju(p I, Eua/ ) L'(pa% j$0a Operand1 4 Operand2
JNE +Ju(p I, N'% Eua/ ) L'(pa% j$0a Operand1 %$da0 *a(a) denan Operand2 JB +Ju(p I, Be'5/ ) L'(pa% j$0a Operand1 + Operand2
) un%u0 -$anan %$da0 -er%anda JL +Ju(p I, Le**/ ) L'(pa% j$0a Operand1 + Operand2
) un%u0 -$anan -er%anda JBE +Ju(p I, Be'5 'r Eua/ ) L'(pa% j$0a 'perand1 +4Operand2
) un%u0 -$anan %$da0 -er%anda JLE +Ju(p I, Le** 'r Eua/ ) L'(pa% j$0a Operand1 +4Operand2
) un%u0 -$anan -er%anda JAE +Ju(p I, A-'e 'r Eua/ ) L'(pa% j$0a Operand1 /4Operand2
) un%u0 -$anan %$da0 -er%anda JGE +Ju(p I, Grea%er 'r ) L'(pa% j$0a Operand1 /4 Operand2Eua/ ) un%u0 -$anan -er%anda
JC +Ju(p Carr6/ ) L'(pa% j$0a Carr6 a41 JCF +Ju(p I, CF $* er'/ ) L'(pa% j$0a CF4= JNA +Ju(p I, N'% A-'e/ ) L'(pa% j$0a Operand1 + Operand2
) denan C
-
8/17/2019 BANDINGKAN DAN LOMPAT.doc
5/6
Bahasa Rakitan By Okti Yudhanti Nur K
JNG +Ju(p I, N'% Grea%er/ ) L'(pa% j$0a Operand1 +4Operand2
) denan
-
8/17/2019 BANDINGKAN DAN LOMPAT.doc
6/6
Bahasa Rakitan By Okti Yudhanti Nur K
7944444444444444444444444444444444444444444487.MODEL SMALL.CODE
ORG 1==&
TDa%a : JMP Pr'*e*Ka DB @ Lu06 Lu0 (ene(-a0 @ 131=DB @ Le-$& epa% dar$ -a6anann6a
@??@@Pr'*e*:
FOR BFBF 7 BF4=MO AH=2& 7 Ser$* !n%u0 Ce%a0 Kara0%er
!an:CMP KaQBF @@ 7 Band$n0an denan @@
JE E$% 7 J$0a Sa(a L'(pa% 0e E$%MO DLKaQBF 7 Ma*u00an 0ara0%er 0e BF (enuju
DL INT 21& 7 Ce%a0 0ara0%erINC BF 7 Ta(-a& 1 pada BF
JMP !an 7 L'(pa% Ke !anE$% : INT 2=& 7 See*a$ 0e(-a$ 0e DOS
END TDa%a
Pr'ra( 13.2. Per-and$nan
-ila program $.#. dialankan, maka pada layar akan ditampilkan:Lu06 Lu0 (ene(-a0
Le-$& epa% dar$ -a6anann6a 'ngka / pada akhir kalimat digunakan untuk menghasilkan suara beep.-ila anda masih ingat pada addressing yang telah kita pelaari, makaprogram $.#. tentunya tidak ada masalah.
>