INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK Mulyono
Pengambilan Keputusan Semua bahasa pemrograman memiliki sintaks pengambilan keputusan Bahasa level tinggi : if, else, case, select Bahasa mesin : CMP, TEST, JMP Instruksinya melihat dari status bit-bit flag register Flag register terkadang perlu disimpan untuk validitas operasi sebelumnya => STACK
JMP Fungsi : Sintaks umum : JMP Tujuan Tipe : Mengarahkan eksekusi program menuju alamat atau tempat yang telah ditentukan sesuai dengan kebutuhan programnya Sintaks umum : JMP Tujuan Tipe : Tak bersyarat : Melompat tanpa memperhatikan status flag register Contoh : JMP Bersyarat Melompat dengan memperhatikan kondisi status flag register Contoh : JNE, JNZ, JGE, dll
CMP Fungsi : Sintaks : CMP Operan1, Operan2 Membandingkan 2 buah operan Operan dikurangkan Hasil mengubah status flag register saja, bukan operan-operannya Sintaks : CMP Operan1, Operan2 Umumnya diikuti oleh tipe perintah loncat bersyarat
Flag Register untuk CMP
Lompat Bersyarat
Lompat Bersyarat Lompatan hanya bisa untuk range alamat -128byte sd +127byte dari alamat lompatnya Contoh : Alamat awal lompatan : 123H, maka valid range dari melompatnya yaitu (123H – 80H) s.d. (123H + 7FH) Alamat lompatan melebihi range => Out of jump range error
Penyederhanaan J = jump E = equal N = not S = sign Z = zero P = parity C = carry O = overflow G = greater than (signed) A = above (unsigned) L = less than (signed) B = below (unsigned)
STACK Merupakan bagian dari mikroprosesor sebagai penyimpan data sementara (memori, register) Dipergunakan sebagai validator untuk status-status opersi aritmatika, logika, dan pengambilan keputusan Memungkinkan program mengembalikan dan mengingat status operasinya
Lokasi Stack Menggunakan pasangan register SS:SP
Instruksi Stack PUSH : menyimpan data ke stack POP : mengeluarkan data dari stack PUSHF : menyimpan flag register ke stack POPF : mengeluarkan data flag register dari stack Stack mengikuti kaidah LIFO (Last In First Out) Pemasukan dan pengeluaran data ke dan dari stack harus benar urutannya!!!
Tipe Stack Tipe : Stack software : Stack hardware : Memanfaatkan memori sebagai stack Fleksibel Maksimal sebesar memori mikroprosesor Lebih lambat Stack hardware : Bagian integral dari sebuah mikroprosesor Tidak fleksibel dalam pengubahannya Ukuran sudah tertentu Amat cepat
Stack Software
Stack Hardware