Kali ini gw mau bagi-bagi dikit nih tentang pemrograman Assembler. Berhubung tadi siang di kampus dijelasin tentang procedure ya gw bisanya jelasin tentang procedure.. Langsung aja ya,, cekidot di bawah ini.. :D
PROCEDURE
- Suatu program yang kompleks dapat diselesaikan lebih mudah
- Proses pencarian kesalahan lebih mudah
- Proses pencarian kesalahan lebih mudah
Pola:
NamaProcedure PROC NEAR/FAR
" PROGRAM "
RET
NamaProcedure ENDP
" PROGRAM "
RET
NamaProcedure ENDP
Contoh Program 1 : Mencetak karkater
.MODEL small
.CODE
ORG 100h
Proses :
CALL cetak_kar
INT 20
Cetak_kar PROC NEAR
MOV AH, 02
MOV DL,’D’
INT 21
RET
Cetak_kar ENDP
END Proses
Contoh Program 2 : Untuk mencetak karakter dengan PROCEDURE
.MODEL SMALL
.CODE
ORG 100 H
TDATA : JMP Proses
Kar DB ?
Klm DB ‘BAHASA ASSEMBLER – KELAS A‘; 26 KARAKTER
Proses :
INT 20
Cetak_kar PROC NEAR
MOV AH, 02
MOV DL,’D’
INT 21
RET
Cetak_kar ENDP
END Proses
Contoh Program 2 : Untuk mencetak karakter dengan PROCEDURE
.MODEL SMALL
.CODE
ORG 100 H
TDATA : JMP Proses
Kar DB ?
Klm DB ‘BAHASA ASSEMBLER – KELAS A‘; 26 KARAKTER
Proses :
MOV CX,28
XOR BX,BX
Ulang :
XOR BX,BX
Ulang :
MOV DL, klm[BX]
MOV Kar,DL
CALL cetak_kar; Panggil cetak_kar
INC BX
MOV Kar,DL
CALL cetak_kar; Panggil cetak_kar
INC BX
LOOP ulang
INT 20
INT 20
Cetak_kar PROC NEAR
PUSH AX
PUSH DX
MOV AH,02
MOV DL,Kar
INT 21
POP DX
POP AX
RET
Cetak_kar ENDP
END TDATA
MACRO
- Hampir sama dengan PROCEDURE
- Tidak menggunakan perintah CALL
- Dapat menggunakan PARAMETER --> cirri bhs pemrograman tingkat tinggi
Pola:
NamaMacro MACRO [P1,P2,…]
"PROGRAM" ENDM
Contoh Program 1: Untuk mencetak karakter
Cetak_kar MACRO kar
MOV CX,2
MOV AH,02
MOV DL,kar
Ulang : INT 21
LOOP ulang
ENDM
.MODEL small
.CODE
ORG 100h
Proses :
Cetak_kar ‘D’
INT 20
END Proses
LABEL PADA MACRO :
- Macro yang didalamnya menggunakan label hanya dapat dipanggil sebanyak 1 kali --> gunakan directive LOCAL
Contoh Program2 :
Cetak_kar MACRO kar
LOCAL ulang
MOV CX,3
MOV AH,2
MOV DL,kar
Ulang : INT 21
LOOP ulang
ENDM
.MODEL small
.CODE
ORG 100h
Proses :
Cetak_kar ‘D’
Cetak_kar ‘C’
INT 20
END Proses
PUSTAKA MACRO
- Bila sering menggunakan fungsi
- Dapat dibuat suatu pustaka MACRO
- Disimpan dengan nama, misal : pustaka.mcr
- File tersebut adalah dalam bentuk ASCII, tanpa perlu dicompile
Contoh :
;Program : Pustaka.mcr;
Cetak_kar MACRO kar
MOV AH,02
MOV DL,kar
INT 21h
ENDM
Cetak_klm MACRO klm
LEA DX,klm
MOV AH,09
INT 21H
ENDM
;Program menggunakan pustaka;
INCLUDE PUSTAKA.MCR
.MODEL SMALL
.CODE
ORG 100h
Tdata : JMP Proses
Kal0 DB ‘PENGGUNAAN PUSTAKA MACRO $’
Proses : Cetak_klm kal0
Cetak_kar ‘D’
INT 20
END Tdata
Perbedaan Macro atau Procedure :
- Procedure tdk memperpanjang program, karena hanya muncul sekali pada program
- Macro akan muncul pada program setiap terjadi pemanggilan terhadap macro, shg macro akan memperpanjang program




0 comments:
Post a Comment