Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure suatu program yang besar dapat diselesaikan dengan lebih mudah. Proses pencarian kesalahan pun akan lebih mudah bila digunakan procedure. Macro hampir sama dengan procedure, yang dapat membantu dalam membuat program yang besar. Dengan macro tidak perlu lagi menggunakan perintah “CALL” dan anda juga dapat menggunakan parameter dengan mudah. PROCEDURE DAN MACRO
Macro NamaMacroMACRO (P1, P2, P3, …) *********************** PROGRAM *********************** ENDM Procedure NamaProcedurePROC NEAR/FAR ************************* PROGRAM ************************* RET NamaProcedureENDP NEAR digunakan pada program COM FAR digunakan pada program EXE
Label Pada Macro Label dapat digunakan pada macro, tetapi dengan adanya label pada macro ini akan menyebabkan macro hanya akan bisa dipanggil satu kali. Jika macro dipanggil lebih dari satu kali maka akan muncul pesan “ **Error** Symbol already defined elsewhere:ulang ”. Untuk menghindari hal tersebut, gunakanlah directif LOCAL. Dengan directif LOCAL assembler akan membedakan label tersebut setiap kali terjadi pemanggilan terhadapnya.
Pustaka Macro Bila kita sering menggunakan suatu fungsi, seperti mencetak kalimat pada program yang kita buat, maka kita dapat membuat pustaka macro. Dengan adanya pustaka macro ini, kita tidak perlu lagi membuat macro yang sama setiap kali akan membuat suatu program baru. Pustaka macro adalah berisi macro-macro yang sering digunakan (hanya bagian macro saja) yang disimpan dengan nama *.mcr. Untuk memasukkan pustaka macro ini pada program, sebelum listing.model small, ketik sintaks : include *.mcr.
Contoh Pustaka Macro
Pemanggilan Pustaka Macro INCLUDE PUSTAKA.MCR ; Gunakan file PUSTAKA.MCR.MODEL SMALL.CODE ORG 100h TData : JMP Proses Kal0 DB 'PENGGUNAAN PUSTAKA MACRO $' Proses: Cetak_Klm Kal0 ; Cetak Kalimat Kal0 Cetak_Kar 'Y' ; Cetak Huruf 'Y' INT 20h END TData
Prosedur tidak memperpanjang program, karena hanya muncul sekali saja pada program. Macro akan muncul pada program setiap terjadi pemanggilan terhadap macro, sehingga macro akan memperpanjang program. Untuk menggunakan procedure anda harus memanggilnya dengan perintah CALL dan dalam procedure diakhiri dengan RET. Macro bisa anda gunakan dengan memanggil langsung namanya dan pada macro tidak perlu diakhiri dengan RET. Procedure akan memperlambat program, karena setiap pemanggilan terhadap procedure, komputer akan melakukan lompatan. Macro tidak memperlambat program karena komputer tidak perlu melakukan lompatan. Pada procedure anda tidak bisa menggunakan parameter secara langsung. Bila anda ingin menggunakan parameter bisa dengan stack atau register. Macro dengan mudah bisa menggunakan parameter, suatu ciri bahasa tingkat tinggi. Macro lebih mudah dibuat dan digunakan daripada procedure. Perbedaan Procedure dan Macro
Jika fungsi tersebut jarang dipanggil, gunakanlah macro karena macro tidak akan memperlambat proses Jika fungsi tersebut sering dipanggil, gunakanlah procedure karena procedure tidak memperbesar program Jika program tersebut kecil, gunakanlah macro karena pengaruh terhadap besarnya program hanya sedikit dan program akan lebih cepat Jika fungsi tersebut besar, gunakanlah procedure karena procedure tidak akan memperbesar program Kapan menggunakan procedure / macro?
Contoh PROCEDURE
Contoh MACRO