Prosedur, Makro, dan Pustaka Makro Bahasa Assembly (Bahasa Rakitan)

Beberapa hari yang lalu, Selasa, 6 Desember 2011 merupakan mata kuliah Bahasa Rakitan, yang membahas mengenai Makro, dan Pustaka Makro. Beberapa kesimpulan yang bisa saya dapatkan  (kebetulan saat itu saya sungguh-sungguh kuliah, dengan memperhatikan satu-demi satu penjelasan materi dosen) yaitu :

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 :
nama_macro MACRO [P1/P2]
<Program>
ENDM
4. Penggunaan Parameter ([P1/P2]) boleh ada, boleh tidak, boleh lebih dari 1 dengan dipisahkan tanda koma.
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 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
b. Buat file .ASMnya, tempat memanggil file pustaka.MCR tadi, dengan nama "pakai.asm". isinya :

include pustaka.mcr  ; pemanggilan file pustaka makro __BAHAYA __Sesuaikan nama file mcr-nya
.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
Hasil jadinya yang pustaka makro :


Nggih, sampun, cekap semanten kemawon share bahan kuliah Pemrograman Bahasa Rakitan dari Saya : Nur Akhwan @ Teknik Informatika Angkatan 2009 STMIK El Rahma Yogyakarta

Share this

Related Posts

Previous
Next Post »

3 comments

comments
22 December 2011 at 16:27 delete

Sing pustaka makro kok hasile ngene yo


Assembling file: pu.asm
**Fatal** pu.asm(38) Unexpected end of file encountered
Error messages: 1
Warning messages: None
Passes: 1
Remaining memory: 443k

Reply
avatar
Anonymous
13 April 2012 at 07:53 delete

ada error tuh di pu.asm line 38 ... di check dlu

Reply
avatar
13 April 2012 at 09:09 delete

oke, akan segera ditindaklanjuti..

tapi mata kuliah Bahasa Rakitan udah kelar, jadi mungkin agak lupa materinya... hehehehe :) :)..

#thanks sudah berkomentar...

Reply
avatar