130 likes | 301 Views
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.
E N D
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 : NamaP PROC NEAR/FAR isi prosedur RET NamaP ENDP • NamaP : 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 • FEAR : • 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 NamaP • 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 : NamaM MACRO P1, P2, P3, … isi macro ENDM • NamaM : Nama macro • MACRO : penanda awal macro • P1, P2, P3 : 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 NamaLabel
Pustaka Macro • Menyederhanakan penulisan macro agar tidak berulang-ulang • Bentuk berupa file ASCII(editable) • Penyertaan ke program utama menggunakan sintak : • INCLUDE NamaFilePustakaMacro • Contoh : • INCLUDE macku.mcr • File pustaka macro harus satu folder dengan program utama
Prosedur atau Macro • Macro : • Fungsi jarang dipergunakan dalam program • Fungsi kecil/tidak terlalu kompleks • Prosedur : • Fungsi sering dipergunakan dalam program • Fungsi besar/kompleks