Senin, 08 Desember 2014

PENGGUNAAN MACRO PADA ASSEMBLY


PENJELASAN


Bentuk macro
NamaM MACRO [P1,P2,,]

+-----------------+
|   Program   |
+-----------------+

ENDM



P1 dan P2 adalah parameter yang bisa kita gunakan pada macro. Parameter ini hanya optional, bisa kita gunakan ataupun tidak.
Mencetak karakter dengan macro :

Kemudian buka command prompt atau bisa juga digantikan dengan DOSBox.Selanjutnya siapkan text editor untuk mengetikkan kode program.

Berikut adalah contoh programnya :


cetak_kar macro kar
        mov ah,2h
        mov dl,kar
        int 21h

endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Program untuk mencetak karakter ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

.model small
.code
org 100h

proses    :
        cetak_kar 'S'

        int 20h
end     proses

Ketikkan kode diatas di keadalam text editor, selanjutnya simpan dengan ekstensi *.ASM. Setelah itu compile program dengan perintah tasm namaprogram di DOSBox, Kemudian ketikkan perintah tlink/t namaprogram. Jalankan program, maka akan menghasilkan karakter S.




Penggunaan Label Pada Macro

Pada macro Anda bisa menggunakan label seperti biasa, tapi kita hanya bis a memanggil satu kali label tersebut. Bila kita menggunakan lebih dari satu kali maka akan terjadi error. Untuk menghindari hal tersebut digunakan directif LOCAL. Dengan directif LOCAL Assembler akan membedakan label tersebut pada saat dipanggil.

contoh program  :


cetak_kar macro kar local ulang
    mov cx,3
    mov ah,02
    mov dl,kar
   
ulang    :
        int 21h
        loop ulang
endm

;;;;;;;;;;;;;;;;;;;

.model small
.code
org 100h

Proses    :
        cetak_kar 'P'
        cetak_kar 'C'

        int 20h

end     Proses

Lakukan proses compile dan linking seperti diatas. Ketika dijalankan, maka akan menghasilkan karakter PPPCCC.




Pada contoh diatas kita hanya menggunakan macro dengan satu parameter, selanjutnya kita akan menggunakan lebih dari satu parameter.

contoh program :


cetak_kar macro lab,lib
    mov ah, 02h
    mov dl, lab
     mov cx, lib
ulang     :
        int 21h
        inc dl
        loop ulang

endm

.model small
.code
org 100h

proses    :
        cetak_kar 'A' 26

        int 20h
end     proses

Kita lihat pada bagian parameter, terdapat dua parameter yaitu lab dan lib. Ketika kita memanggil didalam program kita beri satu spasi pada parameter yang lain , contoh : cetak 'A' 26. Nah 'A'  merupakan parameter 1 dan 26 merupakan parameter 2.

ketika program tersebut dijalankan, maka akan menghasilkan karakter A-Z .




Kalau mau  DOWNLOAD DISINI :)

Tidak ada komentar:

Posting Komentar