Macro on Assembly

Code for macro.asm
INCLUDE  PUSTAKA.MCR
.MODEL SMALL
.CODE
ORG 100h

Mulai :  JMP  Proses
         Kal0 DB 13,10,'CONTOH CETAK KALIMAT DENGAN MACRO $'
         Kal1 DB 13,10,'A = $'
         Kal2 DB 13,10,'B = $'
         Kal3 DB 13,10,'A*B = $'
         Kal4 DB 13,10,'A+B = $'
         Kal5 DB 13,10,'A-B = $'
         Kal6 DB 13,10,'A/B = $'
         a Dw 8
         b Dw 2
       

Proses:
         Cetak_Kar  'A'       
         Cetak_Klm  Kal0       
         MOV AH,09
         MOV DX,OFFSET Kal1
         int 21h
            Cetak_Angka a
         MOV AH,09
         MOV DX,OFFSET Kal2
         int 21h
            Cetak_Angka b
         MOV AH,09
         MOV DX,OFFSET Kal3
         int 21h
            Perkalian a,b
         MOV AH,09
         MOV DX,OFFSET Kal4
         int 21h
            Penjumlahan a,b
         MOV AH,09
         MOV DX,OFFSET Kal5
         int 21h
            Pengurangan a,b
         MOV AH,09
         MOV DX,OFFSET Kal6
         int 21h       
            Pembagian a,b
         INT   20h
END      Mulai
Code for 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
          
      
Cetak_Angka MACRO Angka
            mov ax,angka
            Tampil
            endm
       
Perkalian MACRO a,b
            MOV AX,a
            Mul b
            Tampil
            endm
           
Penjumlahan MACRO a,b
            MOV AX,a
            ADD AX,b
            Tampil
            endm
           
Pengurangan MACRO a,b
            MOV AX,a
            SUB AX,b
            Tampil
            endm
           
Pembagian MACRO a,b
            SUB  DX,DX
            MOV AX,a
            DIV b
            Tampil
            endm
           
Tampil Macro
            local looping, cetak
            mov bx,10
            xor cx,cx
            looping:
            xor dx,dx
            div bx ;
            push dx
            inc cx
            cmp ax,0
            jne looping
            cetak:
           pop dx
            add dl,'0'
            mov ah,02h
            int 21h
            loop cetak
            endM

output :














sekian..
Previous
Next Post »