Matakuliah Tahun Versi : T0483 / Bahasa rakitan : 2005 : 1.0 Pertemuan 8 Instruksi Bahasa Rakitan 8088 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • menghasilkan program yang menggunakan instruksi string dan kontrol alur program 2 Outline Materi • Instruksi String • Instruksi Kontrol Alur Program 3 <<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 4 <<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. 5 <<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 6 <<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 7 <<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 operandnya – Format : jmp <operand> – Operand <operand> sbb: • • • • • • Short-label Near-label Far-label MemPtr16 RegPtr16 MemPtr16 8 <<ISI>> • J?? – J?? merupakan instruksi loncatan bersyarat, dimana syarat yang harus dipenuhi terdapat pada flag register (dilambangkan ??), dan tujuan loncatan diambil dari operandnya Format : 9 <<ISI>> Tanda perbandingan • ! (Not) • = (Equal) • > (Grater than) • < (Less than) • Ekivalen suatu tanda perbandingan adalah sisa tanda dari set tanda tersebut. Misal : Format jump untuk perbandingan nilai : • Ekivalen > adalah ! < = • Ekivalen < = adalah ! > 10 <<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 11 << CLOSING>> • Tugas – Buat program untuk mencetak angka 0 s/d 9 dilayar monitor dengan menggunakan instruksi loop 12
© Copyright 2024 Paperzz