Prosedur dan Makro Prosedur Bentuk pemrograman terstruktur Ada
Prosedur dan Makro
Prosedur • Bentuk pemrograman terstruktur • Ada dalam berbagai bahasa pemrograman • Keyword : PROC, NEAR, FAR, RET, ENDP • Fungsi : menyederhanakan pelaksanaan proses yang berulang-ulang sehingga mengefisienkan space program yang tersedia, dan memudahkan pelacakan kesalahan
Prosedur • Bentuk : Nama. P PROCNEAR/FAR isi prosedur RET Nama. P ENDP • Nama. P : nama prosedur, sebaiknya mencerminkan apa yang dilakukan oleh prosedur tersebut • PROC : keyword yang menyatakan sebuah prosedur • NEAR / FAR : scope pemanggilan prosedur • RET : prosedur harus kembali ke program utama • ENDP : akhir deklarasi pembuatan prosedur • Prosedur dalam bahasa mesin tidak dapat memakai paramater secara langsung, harus menggunakan register ataupun stack
NEAR / FAR ? • NEAR : • Prosedur hanya dapat dipanggil dalam satu segmen saja • Pada saat RET, register IP akan di-POP sebagai alamat loncatan kembali ke program pemanggil • Untuk program COM maupun EXE • FAR : • Prosedur dapat dipanggil dalam satu segmen maupun dalam segmen yang berbeda • Pada saat RET, register IP+CS akan di-POP sebagai alamat loncatan kembali ke program pemanggil • Untuk program EXE
Pemanggilan Prosedur • Menggunakan CALL • Sintak : • CALL Nama. P • Mengambil IP jika NEAR atau IP+CS jika FAR
Prosedur dan Stack • Prosedur mengubah isi register • Isi register harus diamankan sebelum dan sesudah pemanggilan prosedur • Menjaga konsistensi status terakhir register pada program pemanggil • Menggunakan PUSH dan POP
Macro • Bentuk lain pemrograman terstrukstur untuk bahasa mesin • Dapat memakai parameter • Pemanggilan tidak memerlukan CALL • Template program • Lebih mudah dibuat daripada prosedur • Keyword : MACRO, ENDM
Macro • Bentuk : Nama. M MACRO P 1, P 2, P 3, … isi macro ENDM • Nama. M : Nama macro • MACRO : penanda awal macro • P 1, P 2, P 3 : parameter macro (opsional) • ENDM : penanda akhir macro
Proses Eksekusi Macro • Macro dipanggil dengan menuliskan nama macro dan parameter yang diperlukan • Program mengkopi isi macro ke baris program utama, dan mengkompile-nya • Pemanggilan macro banyak => space program terpakai semakin besar • Macro tidak melakukan lompatan => lebih cepat daripada prosedur
Label pada Macro • Label menunjukkan tempat loncatan • Label dalam program mesin tidak boleh sama(dalam satu program hanya boleh ada 1 label) => Error : symbol already used elsewhere • LOCAL : • Membuat sebuah label akan dibedakan jika terjadi pelabelan yang sama • Sintak : LOCAL Nama. Label
Pustaka Macro • Menyederhanakan penulisan macro agar tidak berulang • Bentuk berupa file ASCII(editable) • Penyertaan ke program utama menggunakan sintak : • INCLUDE Nama. File. Pustaka. Macro • Contoh : • INCLUDE macku. mcr • File pustaka macro harus satu folder dengan program utama
Prosedur atau Macro Prosedur Macro Tidak memperbesar ukuran program Memperbesar ukuran program Harus menggunakan CALL dan RET Tidak menggunakan CALL dan RET Memperlambat kerja program karena harus melompat Tidak memperlambat kerja program karena tidak ada lompatan Tidak dapat menggunakan parameter langsung, harus menggunakan register atau stack Dapat menggunakan parameter secara langsung Lebih kompleks Mudah dibuat
Prosedur atau Macro • Macro : • Fungsi jarang dipergunakan dalam program • Fungsi kecil/tidak terlalu kompleks • Prosedur : • Fungsi sering dipergunakan dalam program • Fungsi besar/kompleks
- Slides: 13