Blog Nur Akhwan

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

3 komentar:

  1. 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

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

    BalasHapus
  3. oke, akan segera ditindaklanjuti..

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

    #thanks sudah berkomentar...

    BalasHapus