MAKRO
1. Makro kurang lebih mirip dengan Prosedur, hanya saja Makro lebih canggih, karena bisa menggunakan Parameter.
2. Makro tidak menggunakan perintah CALL seperti pada Procedure
3. Format penulisan Makro :
4. Penggunaan Parameter ([P1/P2]) boleh ada, boleh tidak, boleh lebih dari 1 dengan dipisahkan tanda koma.nama_macro MACRO [P1/P2]<Program>ENDM
5. Jika Makro menggunakan Label, yang dipanggil lebih dari 1, maka HARUS menggunakan kata kunci LOCAL
Contoh Program dengan MAKRO :
; DEKLARASI MAKRO
; terdiri dari 3 makro, yaitu cetak_kar, cetak_kal, cetak_angka
;cetak karakter
cetak_kar macro kar
local ulang
mov cx, 2
mov ah, 02
mov dl, kar
ulang:
int 21h
loop ulang
endm
;cetak kalimat
cetak_kal macro kal
mov ah,09h
lea dx,kal
int 21h
endm
;cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
mov ax,angka ;ax =1234
mov bx,10 ;bx=10
xor cx,cx ;cx=0
ulang:
xor dx,dx
div bx ;dx=ax/bx
push dx ;push untuk menyimpan data ke dalam steck
inc cx
cmp ax,0
jne ulang
cetak:
pop dx ;pop untuk mengambil data dari stack
add dl,'0' ;ubah angka menjadi code ascii
mov ah,02h
int 21h
loop cetak
endm
; SELESAI deklarasi MAKRO
;mulai penggunaan makro
.model small
.code
org 100h
proses: jmp x
k db ' STMIK EL RAHMA YOGYAKARTA $'
a dw 2009
x:
cetak_kar 'w'
cetak_kal k
cetak_angka a
int 20h
end proses
PUSTAKA MAKRO
1. Bila banyak menggunakan makro, maka dapat dijadikan 1 menjadi suatu Pustaka Makro
2. Pustaka Makro adalah suatu File dengan Extensi .MCR yang berisi beberapa atau banyak Makro
3. File .MCR tadi harus 1 folder dengan file .ASM yang memanggilnya.
4. Untuk memanggilnya menggunakan kata kunci INCLUDE nama_file_pustaka.MCR
Contoh program dengan Pustaka Makro.
a. Buat file pustaka makronya dengan nama "pustaka.mcr", isinya :
;cetak karakterb. Buat file .ASMnya, tempat memanggil file pustaka.MCR tadi, dengan nama "pakai.asm". isinya :
cetak_kar macro kar
local ulang
mov cx, 2
mov ah, 02
mov dl, kar
ulang:
int 21h
loop ulang
endm
;cetak kalimat
cetak_kal macro kal
mov ah,09h
lea dx,kal
int 21h
endm
;cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
mov ax,angka ;ax =1234
mov bx,10 ;bx=10
xor cx,cx ;cx=0
ulang:
xor dx,dx
div bx ;dx=ax/bx
push dx ;push untuk menyimpan data ke dalam steck
inc cx
cmp ax,0
jne ulang
cetak:
pop dx ;pop untuk mengambil data dari stack
add dl,'0' ;ubah angka menjadi code ascii
mov ah,02h
int 21h
loop cetak
endm
include pustaka.mcr ; pemanggilan file pustaka makro __BAHAYA __Sesuaikan nama file mcr-nyaHasil jadinya yang pustaka makro :
.model small
.code
org 100h
proses: jmp x
k db ' STMIK EL RAHMA YOGYAKARTA $'
a dw 2009
x:
cetak_kar 'w'
cetak_kal k
cetak_angka a
int 20h
end proses
Nggih, sampun, cekap semanten kemawon share bahan kuliah Pemrograman Bahasa Rakitan dari Saya : Nur Akhwan @ Teknik Informatika Angkatan 2009 STMIK El Rahma Yogyakarta
Sing pustaka makro kok hasile ngene yo
BalasHapusAssembling file: pu.asm
**Fatal** pu.asm(38) Unexpected end of file encountered
Error messages: 1
Warning messages: None
Passes: 1
Remaining memory: 443k
ada error tuh di pu.asm line 38 ... di check dlu
BalasHapusoke, akan segera ditindaklanjuti..
BalasHapustapi mata kuliah Bahasa Rakitan udah kelar, jadi mungkin agak lupa materinya... hehehehe :) :)..
#thanks sudah berkomentar...