Anda di halaman 1dari 19

Nama : Miftakhul Aripin

Prodi : Tekom 3
cls macro //Macro untuk menghapus layar
mov ax, 0600h
xor bx, bx
mov dx, 184fh
mov bh, 10
int10h
endm
(Pada kode tersebut menempatkan warna hijau diatas warna hitam)
gotoxy macro x, y // Macro Untuk memindahkan posisi kursor
mov ah, 02h
xor bx, bx
mov dh, y
mov dl, x
int 10h
endm

read_key macro //Macro Untuk membaca input dari keyboard


mov ah, 00
//keyboard
int
16h
//hasilnya
AH=Extende
d,
AL=ASCII
endm

menul macro string // Macro untuk mencetak menu


mov ah, 09h
lea dx, string
int21h
endm

tampil macro nilai // untuk menampilkan bilangan pada macro


mov ah, 02h
mov dx, nilai
int 21h
endm

ulangtampil macro nilai, batas


local ulang
mov cx, batas
ulang:
mov ah, 02h
mov dx, nilai
int 21h
loop ulang
endm
(Pembuatan untuk batas pada macro terhadap nilai)
delay macro
local ulang
localulang2
pushcx
mov cx,0ffffh

1
ulang: //proses
looping
push cx
mov cx, 0fffh
ulang2: loop ulang2
pop cx
loop ulang
popcx
endm

2
.model small
.code
org100h
//Inisialisasi alamat mulai program CODE Penanda mulai pendefinisian
program
start:
jmp mulai //lompat untuk memulai program

judul db ' Calculator MN2016$'


tambah db ' [1]Tambah$'
kurang db ' [2] Kurang$'
kali db ' [3]Kali$'
bagi db ' [4]Bagi$'
keluar db ' Exit Program$'
MN2016 db'MN2016$'
rule db'RULE$'
up db ' =up$'
down db ' =down$'
akhir db 'See You NextTime$'

pertambahan db 'Pertambahan$'
pengurangan db 'Pengurangan$'
perkalian db 'Perkalian$'
pembagian db'Pembagian$'
back db 'Back$'
sd db' = $'
tanda1 db' + $'
tanda2 db' - $'
tanda3 db' x $'
tanda4 db' : $'
hasil db 'hasil$'

pindah db13,10,'$'

a db0
b db0
c db1
d db0
e db0
f db0
nilaix db33
nilaiy db6
nilaiy1 db6
panah_atas equ 72
panah_bawah equ 80
enter_key equ 0dh
(Kode untuk mencetak tulisan pada layar macro)
mulai:
cls
gotoxy 10,3
tampil 201
ulangtampil 205, 33
tampil 187
gotoxy 10,4
tampil 186
gotoxy 44,4
tampil 186
menul pindah
gotoxy 10,5
tampil 204
ulangtampil 205, 20
tampil 203
ulangtampil 205, 3
tampil 203
ulangtampil 205, 8
tampil 185
menul pindah
gotoxy 10,6
tampil 186
ulangtampil 255, 20
tampil 186
ulangtampil 255, 3
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,7
tampil 186
ulangtampil 255, 20
tampil 186
ulangtampil 255, 3
tampil 204
ulangtampil 205, 8
tampil 185
menul pindah
gotoxy 10,8
tampil 186
ulangtampil 255, 20
tampil 186
ulangtampil 255, 3
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,9
tampil 186
ulangtampil 255, 20
tampil 186
ulangtampil 255, 3
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,10
tampil 204
ulangtampil 205, 20
tampil 206
ulangtampil 205, 3
tampil 206
ulangtampil 205, 8
tampil 185
menul pindah
gotoxy 10,11
tampil 186
ulangtampil 255, 20
tampil 186
ulangtampil 255, 3
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,12
tampil 200
ulangtampil 205, 20
tampil 202
ulangtampil 205, 3
tampil 202
ulangtampil 205, 8
tampil 188
menul pindah
gotoxy 30, 9
(Pengaturan penempatan tulisan layar pada macro)
tulis:
gotoxy 12, 4
menul judul
gotoxy 12, 6
menul tambah
gotoxy 12, 7
menul kurang
gotoxy 12, 8
menul kali
gotoxy 12, 9
menul bagi
gotoxy 12, 11
menul keluar
gotoxy 37, 11
menul MN2016
gotoxy 38, 6
menul rule
gotoxy 36,8
tampil 24
menul up
gotoxy 36, 9
tampil 25
menul down
cmp c, 0
je input
decc
jmp mulai
//macro penempatan posisi menu
awal:
jmp mulai
//lompat ke awal
input:
gotoxy nilaix, nilaiy
tampil 17
read_key
cmp ah, panah_bawah
je bawah
cmp ah, panah_atas
je atas
cmp al, enter_key
je setting
jmp input
//Ketika penekanan tombol Enter maka program akan langsung
lompat ke input
bawah:
cmp nilaiy, 9
je lompat1
cmp nilaiy, 11
jeawal
inc nilaiy
jmp awal

lompat1:
mov nilaiy, 11
jmp awal
//memindahkan nilaiy pada lompatan awal
atas:
cmp nilaiy, 11
je lompat2
cmp nilaiy, 6
jeawal
dec nilaiy
jmp awal

lompat2:
mov nilaiy, 9
jmp awal

setting:
cls
cmp nilaiy, 5
ja mulaihitung

mulaihitung:
cls
gotoxy 10,3
tampil 201
ulangtampil 205, 15
tampil 203
ulangtampil 205, 8
tampil 187
gotoxy 10,4
tampil 186
ulangtampil 255, 15
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,5
tampil 204
ulangtampil 205, 6
tampil 203
ulangtampil 205, 3
tampil 203
ulangtampil 205, 4
tampil 206
ulangtampil 205, 8
tampil 185
menul pindah
gotoxy 10,6
tampil 186
ulangtampil 255, 6
tampil 186
ulangtampil 255, 3
tampil 186
ulangtampil 255, 4
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,7
tampil 186
ulangtampil 255, 6
tampil 186
ulangtampil 255, 3
tampil 186
ulangtampil 255, 4
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,8
tampil 204
ulangtampil 205, 6
tampil 202
ulangtampil 205, 3
tampil 206
ulangtampil 205, 4
tampil 206
ulangtampil 205, 8
tampil 185
menul pindah
gotoxy 10,9
tampil 186
ulangtampil 255, 10
tampil 186
ulangtampil 255, 4
tampil 186
ulangtampil 255, 8
tampil 186
menul pindah
gotoxy 10,10
tampil 200
ulangtampil 205, 10
tampil 202
ulangtampil 205, 4
tampil 202
ulangtampil 205, 8
tampil 188
menul pindah
gotoxy 30, 9

cmp nilaiy, 6
je tambah1
cmp nilaiy, 7
je kurang1
cmp nilaiy, 8
jekali1
cmp nilaiy, 9
je bagi1
jmp selesai
//Macro
Melakukan proses
perhitungan.
tambah1:
gotoxy 13, 4
menul pertambahan
gotoxy 11, 6
menultanda1
jmp tulis1
// Program
operasi
pertambahan
kurang1:
gotoxy 13, 4
menul pengurangan
gotoxy 11, 6
menultanda2
jmp tulis1
//Program
operasi
pengurangan
kali1:
gotoxy 13, 4
menul perkalian
gotoxy 11, 6
menul tanda3
jmptulis1
//program operasi
perkalian
bagi1:
gotoxy 13, 4
menul pembagian
gotoxy 11, 6
menul tanda4
jmptulis1
//Program operasi
pembagian
tulis1:
mov nilaiy1, 6
gotoxy 11, 7
menul back
gotoxy 12, 9
menul hasil
gotoxy 28, 9
menul MN2016
gotoxy 28, 4
menul rule
gotoxy 27,6
tampil 24
menul up
gotoxy 27, 7
tampil 25
menul down
//program Macro
untuk menuliskan
angka

input1:
gotoxy 19, nilaiy1
tampil 17
baca1:
gotoxy 23, 6
read_key
cmp ah, panah_bawah
je bawah1
cmp ah, panah_atas
je atas1
cmp al, enter_key
je setting1
mov ah,02h
mov dl, al
int 21h
mov a,dl
loop baca1
jmpinput1
atas1: jmp atas2
input2: jmp input1
bawah1:
gotoxy 19, nilaiy1
tampil 255
cmp nilaiy1, 7
je input1
inc nilaiy1
jmp input1
atas2:
gotoxy 19, nilaiy1
tampil 255
cmp nilaiy1, 6
je input2
dec nilaiy1
jmp input2
//program Membaca Nilai yang di inputkan
setting1:
cmp nilaiy1, 7
je kembali1
baca2:
gotoxy 23,7
read_key
cmp al, enter_key
je samadengan
movah,02h
mov dl, al
int 21h
mov b,dl
loopbaca2
samadengan:
gotoxy 24, 9
tampil 255
gotoxy 23, 9
mov ah, a
mov al, b
cmp nilaiy, 6
jesdt
cmp nilaiy, 7
jesdk
cmp nilaiy, 8
je sdka
cmp nilaiy, 9
je sdb
//Program eksekusi operasi kalkulator
sdk:
sdt:
dl,ah
a
d
d

a
h
,

a
l

m
o
v

d
l
,
a
h

s
u
b

d
l
,

4
8

j
m
p

s
a
d
g

s
u
b

a
h
,

a
l

m
o
v
sub dl, 208
jmp sadg
//menginputkan
Software
Development
Tooling dan
Software
Development Kit
kembali1: jmp kembali
sdka:
sub al, 48
sub ah, 48
mov cl, al
mov al, ah
mov ah, 0
sdka1:
add ah, al
loop sdka1
mov dl,ah
sub dl, 208
jmp sadg
sdb:
sub al,48
sub ah,48
mov e, 49
mov f, ah
mov ah,al
sdb1:
add ah, al
mov dl, e
cmp ah, f
ja sadg
ince
jmp sdb1
sadg:
cmpdl, '9'
ja puluhan
cmpdl,'0'
jb min
mov ah,2
int 21h
jmpinput2
min:
mov e, 49
ulang4:
inc dl
cmp dl, '0'
mov d, '-'
je tampil2
inc e
jmp ulang4
puluhan:
mov d, 49
ulang3: sub dl, 10
cmp dl, ':'
mov e, dl
jb tampil2
incd
jmp ulang3
tampil2:
mov dl, d
mov ah,2
int 21h
mov dl, e
mov ah,2
int 21h
jmpinput2
kembali:
mov c, 1
jmp mulai
selesai:
cls
gotoxy 15, 6
menul akhir
delay
cls
gotoxy 15, 5
menul akhir
delay
cls
gotoxy 15, 4
menul akhir
delay
cls
gotoxy 15, 3
menul akhir
delay
cls
gotoxy 15, 2
menul akhir
delay
cls
gotoxy 15, 1
menul akhir
delay
cls
gotoxy 15, 0
menul akhir
delay
cls
int 20h
end start

10

Anda mungkin juga menyukai