Procedure dan Macro
Procedure dan Macro Macro pada dasarnya tidak berbeda jauh dengan Procedure/Subroutine. Bedanya hanya pada pemakaian memori Format Procedure : CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START : ….. CALL[LABEL] …. [LABEL] PROC [NEAR/FAR] …… ….. RET [LABEL] ENDP
Procedure dan Macro (cont.) Format Macro : [LABEL] MACRO ….. ENDM CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START :[LABEL]
Procedure dan Macro (cont.) Perbedaan Procedur dan Macro : Procedure: Pemanggilannya akan menuju alamat dimana procedur berada. Dengandemikian program dalam procedure hanya muncul satukali, yaitu hanya dalam procedure-nya saja Macro Pemanggilannya akan mengakibatkan penulisan kembali program macro sebagai engganti kata macro. Dengan demikianprogram dalam macro akan selalu muncul dan disisipkan disetiap pemanggilannya.
Procedure dan Macro (cont.) Contoh Macro dng Turbo Assembler CETAK 1 MACRO MOV AH,02 MOV DL,30H INT 21H ENDM CETAK2 MACRO MOV DL,31H CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START : CETAK1 CETAK1 MOV DL,41H CETAK2 INT 20H CODE_SEG ENDS END START Contoh Procedure dng Turbo Assembler CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START : CALL CETAK1 CALL CETAK1 MOV AH,02 MOV DL,41H INT 21H CALL CETAK2 INT 20H CETAK1 PROC NEAR MOV DL,30H RET CETAK1 ENDP CETAK2 PROC NEAR MOV DL,31H CETAK2 ENDP CODE_SEG ENDS END START
Procedure dan Macro (cont.) Contoh Macro dng Debug MOV AH,02 MOV DL,30 INT 21 MOV DL,41 MOV DL,31 INT20 Contoh Procedure dng Debug CALL * MOV AH,02 MOV DL,41 INT21 CALL ** INT20 * * MOV AH,02 MOV DL,30 RET ** ** MOV AH,02 MOV DL,31