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
Pustaka.MCR
Cetak_Kar Macro Kar
MOV AH,02
MOV DL,Kar
INT 21H
EndM
Cetak_Klm MACRO Klm ; Macro untuk mencetak
LEA DX,Klm ; kalimat
MOV AH,09
INT 21h
ENDM
Catat MACRO j
mov ah,0ah
lea dx,j
int 21h
ENDM
Cetak_Angka MACRO Angka
mov ax,angka
Tampil
endm
Perkalian MACRO a,b
MOV AX,a
Mul b
endm
Penjumlahan MACRO a,b
MOV AX,a
ADD AX,b
endm
Pengurangan MACRO a,b
MOV AX,a
SUB AX,b
endm
Pembagian MACRO a,b
SUB DX,DX
MOV AX,a
DIV b
endm
Kuadrat MACRO a
MOV AX,a
Mul a
endm
AkarKuadrat Macro a
MOV CX,a
MOV AX,-1
CWD
XOR BX,BX
Loopsqrt:
INC AX
INC DX
INC DX
ADD BX,DX
CMP BX,CX
JBE Loopsqrt
ENDM
Tampil Macro
local looping, cetak
mov bx,10 ;bx=10
xor cx,cx ;cx=0
looping:
xor dx,dx
div bx ;dx=ax/bx
push dx ;push untuk menyimpan data ke dalam steck
inc cx
cmp ax,0
jne looping
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
Sign up here with your email
ConversionConversion EmoticonEmoticon