120 likes | 336 Views
Pertemuan 8 Instruksi Bahasa Rakitan 8088. Matakuliah : T0483 / Bahasa rakitan Tahun : 2005 Versi : 1.0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : menghasilkan program yang menggunakan instruksi string dan kontrol alur program. Outline Materi.
E N D
Pertemuan 8Instruksi Bahasa Rakitan 8088 Matakuliah : T0483 / Bahasa rakitan Tahun : 2005 Versi : 1.0
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • menghasilkan program yang menggunakan instruksi string dan kontrol alur program
Outline Materi • Instruksi String • Instruksi Kontrol Alur Program
<<ISI>> Instruksi String • Instruksi : movs • Tipe data byte : movsb • Tipe data word : movsw • MOVS (Move String) akan melakukan pemindahan data demi data dari memori yang ditunjuk oleh pasangan register DS:[SI] ke memori tujuan yang ditunjuk oleh pasangan register ES:[DI] • Format : movs
<<ISI>> Tipe data : • Penambahan nilai index (SI/DI) tergantung dari operasi CLD (+) atau STD (-) sebelum melakukan pemindahan. Sehingga dapat dikatakan CLD akan melakukuan pemindahan data dari kiri ke kanan, sedangkan STD sebaliknya.
<<ISI>> REP • REP digunakan secara bersamaan dengan instruksi string, bila pekerjaan yang akan dilakukan lebih dari satu kali. Sebagai contoh bila ada 5 buah data yang akan dipindahkan, maka dengan cara biasa adalah : cld movsb movsb movsb movsb Movsb • Cara diatas tidak efektif (boros baris), tetapi dengan menggabungkan instruksi REP dengan instruksi MOVSB maka akan lebih efektif. Contoh : mov cx, 05 cld rep movsb
<<ISI>> Instruksi Perbandingan Nilai • CMP • CMP digunakan untuk membandingkan 2 (dua) operand, dimana operasi yang dilakukan adalah pengurangan, tetapi tidak mempengaruhi ke dua operandnya. Hasil perbandingannya dapat dilihat pada register bendera dan biasanya di ikuti oleh instruksi conditional jump • Format : CMP D, S
<<ISI>> • Instruksi kontrol alur program • Unconditional jump : jmp • Conditional jump : j?? • Looping : loop • JMP • JMP merupakan instruksi loncatan, dimana proses saat itu akan langsung berpindah ke alamat yang ditunjukkan oleh operand-nya • Format : jmp <operand> • Operand <operand> sbb: • Short-label • Near-label • Far-label • MemPtr16 • RegPtr16 • MemPtr16
<<ISI>> • J?? • J?? merupakan instruksi loncatan bersyarat, dimana syarat yang harus dipenuhi terdapat pada flag register (dilambangkan ??), dan tujuan loncatan diambil dari operand-nya Format :
<<ISI>> Tanda perbandingan • ! (Not) • = (Equal) • > (Grater than) • < (Less than) • Ekivalen suatu tanda perbandingan adalah sisa tanda dari set tanda tersebut. Misal : • Ekivalen > adalah ! < = • Ekivalen < = adalah ! > Format jump untuk perbandingan nilai :
<<ISI>> • LOOP • Loop merupakan instruksi perulangan yang sama dengan REP, hanya saja perulangan yang dapat dilakukan sampai dengan beberapa instruksi (REP hanya 1 instruksi) • Format : loop <operand> • Operand => Short-label • Operasi : looping selama CX > 0
<< CLOSING>> • Tugas • Buat program untuk mencetak angka 0 s/d 9 dilayar monitor dengan menggunakan instruksi loop