Penggunaan Procedure Pada Assembly


Assalamualaykum

Pada kesempatan kali ini, kita akan membahas mengenai penggunaan procedure dalam bahasa pemrograman Assembly.

Procedure sendiri digunakan untuk memudahkan kita dalam membuat program di Assembly. Kita tinggal memanggil procedure yang telah dibuat.

Untuk membuat procedure bisa diilustrasikan  seperti berikut :

NamaP Proc NEAR/FAR

+ -------------- +
|  Program  |
+----------------+
 Ret
                                         
 NamaP ENDP

"NamaP" adalah nama dari procedure yang kita definisikan sendiri. NEAR/FAR merupakan bentuk dari procedure tersebut. Bentuk NEAR digunakan jika procedure tersebut nantinya dipanggil oleh program yang letaknya masih satu segment dari procedure tersebut. Sebaliknya bentuk FAR ini digunakan bila procedure dapat dipanggil dari segment lain. Bentuk ini akan kita gunakan pada program EXE.

Perintah RET(Return) digunakan untuk mengembalikan kontrol program pada simpemanggil procedure. Pada bentuk NEAR perintah RET ini akan memPOP atau mengambil register IP dari stack sebagai alamat loncatan menuju program pemangil procedure. Sedangkan pada bentuk FAR perintah RET ini akan mengambil register IP dan CS dari stack sebagai alamat loncatan menuju program pemanggil procedure. Alamat kembali  untuk procedure disimpan pada stack pada saat procedure tersebut dipanggil dengan perintah CALL. Dengan syntak :

CALL NamaP

Berikut kita akan membuat program dengan procedure.

Pertama kita siapkan  tersebih dahulu kompiler Assembly nya, jika Anda belum punya silahkan download di sini.

Setelah itu buka command prompt atau bisa digantikan dengan DOSBox yang digunakan untuk mengkompile dan linking program.

Kemudian siapkan text editor untuk mengetikkan kode program, ada banyak text edtior, Anda bisa menggunakan notepad, notepad++, sublime text,edit,dll.

Kita akan membuat program mencetak karakter dengan procedure,berikut kode programnya.

.model small
.code
org 100h

proses     : call cetak_kar
         int 20h

cetak_kar     proc near
            mov ah,2h
            mov dl,'A'
            int 21h
           
            ret
cetak_kar    endp

end     proses

Simpan dengan ekstensi *.ASM. Setelah itu kita kompile program tersebut di dengan perintah tasm  namaprogram , selanjutnya kita linking program dengan perintah tlink/t namaprogram.



Ketika program tersebut dijalankan maka akan menghasilkan karakter 'A'.


Selanjutnya kita coba membuat program untuk mencetak karakter A - Z satu warna, masih menggunakan procedure.

.model small
.code
org 100h

proses     : call cetak_kar
         int 20h

cetak_kar     proc near
            mov ah,2h
            mov dl,'A'
            mov cx,26

ulang        :
            int 21h
            inc dl
            loop ulang
           
            ret
cetak_kar    endp

end     proses

Jalankan program diatas, maka akan menghasilkan karakter A-Z.


Kita juga bisa mencetak karakter A - Z warna - warni, berikut kode programnya

.model small
.code
org 100h

proses     : call cetak_kar
         int 20h

cetak_kar     proc near
            mov ah,9h           
            mov bl,99h
            mov cx,26
ulang        :
            int 10h
            inc bl
            loop ulang

            mov ah,2h
            mov dl,'A'
            mov cx,26

lagi        :
            int 21h
            inc dl
            loop lagi
           
            ret
cetak_kar    endp

end     proses



Jalankan program tersebut, maka akan menghasilkan karakter A - Z warna-warni.

Mungkin sampai disini dulu postingan kali ini, Saya mohon maaf bila ada kata-kata yang kurang dimengerti.

Terimakasih

Wassalamualaykum.

Download Tutorial

Posting Komentar