22 December 2011

Kali ini gw mau bagi-bagi dikit nih tentang pemrograman Assembler. Berhubung tadi siang di kampus dijelasin tentang procedure ya gw bisanya jelasin tentang procedure.. Langsung aja ya,, cekidot di bawah ini.. :D


PROCEDURE   

-  Suatu program yang kompleks dapat diselesaikan lebih mudah
-  Proses pencarian kesalahan lebih mudah

Pola:
NamaProcedure PROC  NEAR/FAR

               " PROGRAM "

RET
NamaProcedure ENDP  



Contoh Program 1 : Mencetak karkater


.MODEL small
.CODE
ORG 100h

Proses  :    

CALL cetak_kar
   INT 20
Cetak_kar PROC NEAR
   MOV AH, 02
   MOV DL,’D’
   INT 21
   RET
Cetak_kar ENDP
END   Proses

 Contoh Program 2 :   Untuk mencetak karakter dengan PROCEDURE

.MODEL SMALL
.CODE
ORG 100 H

TDATA   : JMP Proses
    Kar DB ?
    Klm DB ‘BAHASA ASSEMBLER – KELAS A‘; 26 KARAKTER

Proses  : 
      MOV CX,28
      XOR BX,BX

Ulang  :  
       MOV DL, klm[BX]
       MOV Kar,DL
       CALL cetak_kar; Panggil cetak_kar
       INC BX 
LOOP ulang

       INT 20 

 Cetak_kar PROC NEAR
       PUSH AX
       PUSH DX
       MOV AH,02
       MOV DL,Kar
       INT 21
       POP DX
       POP AX
       RET
Cetak_kar ENDP
END TDATA
 



MACRO

-  Hampir sama dengan PROCEDURE
-  Tidak menggunakan perintah CALL
-  Dapat menggunakan PARAMETER --> cirri bhs pemrograman tingkat tinggi

Pola:
NamaMacro MACRO [P1,P2,…]
     "PROGRAM"

 ENDM

Contoh Program 1: Untuk mencetak karakter

Cetak_kar  MACRO kar
   MOV CX,2
   MOV AH,02
   MOV DL,kar
Ulang  :   INT 21
   LOOP ulang
   ENDM

.MODEL small
.CODE
ORG 100h
Proses :
   Cetak_kar ‘D’
INT 20
END Proses

 LABEL PADA MACRO :
  • Macro yang didalamnya  menggunakan label hanya dapat dipanggil  sebanyak 1 kali --> gunakan directive  LOCAL 
 Contoh Program2 :

Cetak_kar MACRO kar
   LOCAL ulang
   MOV CX,3
   MOV AH,2
   MOV DL,kar
Ulang  : INT 21
     LOOP ulang
     ENDM

.MODEL small
.CODE
ORG 100h
Proses :
        Cetak_kar ‘D’
        Cetak_kar ‘C’
        INT 20
        END Proses

PUSTAKA MACRO
-  Bila sering menggunakan fungsi 
-  Dapat dibuat suatu pustaka MACRO
-  Disimpan dengan nama, misal : pustaka.mcr
-  File tersebut adalah dalam bentuk ASCII, tanpa perlu dicompile


Contoh :
;Program : Pustaka.mcr;

Cetak_kar   MACRO kar
   MOV AH,02
   MOV DL,kar
   INT 21h
   ENDM
Cetak_klm    MACRO klm
   LEA DX,klm
       MOV AH,09
   INT 21H
   ENDM

;Program menggunakan pustaka;

INCLUDE PUSTAKA.MCR
   .MODEL SMALL
   .CODE
   ORG 100h

Tdata : JMP Proses
     Kal0 DB ‘PENGGUNAAN PUSTAKA MACRO $’

Proses : Cetak_klm kal0
     Cetak_kar ‘D’
     INT 20
END  Tdata

Perbedaan Macro atau Procedure :
  • Procedure tdk memperpanjang program, karena hanya muncul sekali pada program
  • Macro akan muncul pada  program setiap terjadi pemanggilan terhadap macro, shg macro akan memperpanjang program

x_3b54f7ab

0 comments:

Post a Comment

Time

Anda pengunjung ke-

TRANSLATOR

Followers

My tweet

SUPPORTED BY:

Cafe Bisnis Online
SANDY NET
Image by Deni Prast