Makalah Studi Kasus Manajemen Produksi K
TUGAS MAKALAH
STUDI KASUS PROGRAM ASSEMBLER MENGGUNAKAN
APLIKASI EMU8086
Disusun untuk memenuhi salah satu tugas mata kuliah Organisasi dan Arsitektur
Komputer
Dosen:
EKO BUDI SETIAWAN, S.KOM., M.T.
Disusun Oleh :
IQBAL SYARIFUDIN LUTFIE
10115055
FAKULTAS TEKNIK DAN ILMU KOMPUTER
JURUSAN TEKNIK INFORMATIKA
UNIVERSITAR KOMPUTER INDONESIA
2017
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa atas segala rahmat-Nya sehingga
makalah ini dapat tersusun hingga selesai . Tidak lupa penyusun juga mengucapkan
banyak terimakasih atas bantuan dari pihak yang telah berkontribusi dengan
memberikan sumbangan baik materi maupun pikirannya.
Besar harapan semoga makalah ini dapat menambah pengetahuan dan
pengalaman bagi para pembaca, Untuk ke depannya dapat memperbaiki bentuk
maupun menambah isi makalah agar menjadi lebih baik lagi.
Karena keterbatasan pengetahuan maupun pengalaman, Penyusun yakin
masih banyak kekurangan dalam makalah ini, Oleh karena itu kami sangat
mengharapkan saran dan kritik yang membangun dari pembaca demi kesempurnaan
makalah ini.
Bandung,
Januari 2017
Penyusun
i
DAFTAR ISI
Hal
KATA PENGANTAR ........................................................................................
i
DAFTAR ISI .......................................................................................................
ii
DAFTAR GAMBAR ..........................................................................................
iii
BAB I
PENDAHULUAN
1.1 Latar Belakang .....................................................................................
1
1.2 Perumusan Masalah .............................................................................
1
1.3 Manfaat ................................................................................................
2
BAB II
PEMBAHASAN
2.1 Assembly dan Eksekusi Program .........................................................
3
2.2 Studi Kasus ..........................................................................................
4
2.2.1 Menampilkan Nim dan Nama .........................................................
4
1 Source Code ................................................................................
4
2 Keterangan ..................................................................................
4
3 Tampilan Layar ..........................................................................
6
2.2.2 Penjumlahan Dua Bilangan .............................................................
6
1 Source Code ................................................................................
6
2 Keterangan ..................................................................................
8
3 Tampilan Layar ..........................................................................
12
BAB III PENUTUP
3.1 Kesimpulan ..........................................................................................
13
DAFTAR PUSTAKA .........................................................................................
iv
ii
DAFTAR GAMBAR
Hal
Gambar 2.1 Tampilan layar studi kasus : menampilkan nim dan nama ............... 6
Gambar 2.2 Tampilan layar studi kasus : menghitung dua buah bilangan dari empat
angka belakang NIM ........................................................................ 12
iii
BAB I
PENDAHULUAN
1.1
Latar Belakang
Bahasa pemrograman assembly adalah bahasa pemrograman dasar
yang pertamadikenal untuk menghubungkan programmer dengan mesin.
Sifatnya yang mendekati bahasamesin memberikan keistimewaan tersendiri,
yaitu kecepatan akses. secara umum, semakindekat bahasa pemrograman
dengan mesin, semakin tinggi pula kecepatannya. Pemrograman bahasa
assembly menawarkan kelebihan ini. Walaupun saat ini sudah banyak
bahasa pemrograman
tingkat
tinggi
(high
level
language),
bahasa
pemrograman assembly masih tetap banyak digunakan. Makalah ini
membahas bahasa pemrograman assembly dari sesuai aplikasinya (studi
kasus).
1.2
Perumusan Masalah
Berdasarkan latar belakang yang telah dipaparkan di atas, dapat
dirumuskan masalah sebagai berikut :
1. Mengenal dan memahami fungsi dasar dalam Bahasa Assembly.
2. Mengerti dan memahami jalannya program dalam Bahasa Assembly.
3. Studi Kasus Program Assembler
1
2
1.3
Manfaat
1. Dapat menambah wawasan dan ilmu tentang Bahasa pemrograman
Assembly.
2. Dapat mengenal sintaks-sintaks Bahasa Assembly.
3. Dapat mempelajari dasar-dasar Bahasa Assembly.
3
BAB II
PEMBAHASAN
2.1
Assembly dan Eksekusi Program
Source program yang ditulis dalam bahasa assembly harus diassemble
menjadi object program bahasa mesin sebelum dapat dieksekusi. Hal ini
dilakukan oleh program assembler, yang mengganti semua simbol untuk
mode operasi dan penggalamatan dengan kode biner yang digunakaa dalam
instruksi mesin, dan mengganti semua nama dan label dengan nilai
sebenarnya.
Assembler menetapkan alamat untuk instruksi dan blok data, mulai
dari alamat yang ada dalam asembler directive ORIGIN. Juga menyisipkan
konstanta yang dapat dinyatakan dalam perintah DATAWORD dan ruang
memori cadangan sebagaimana yang diminta oleh perintah RESERVE.
Bagian utama proses assembly menetapkan nilainilai untuk menggantikan
namanama tersebut. Pada beberapa kasus, dimana nilai suatu nama ditetapkan
oleh directive EQU, maka ini merupakan tugas langsung. Pada kasus lain,
dimana suatu nama didefinisikan dalam field Label suatu instruksi, maka nilai
yang diwakili nama ini ditentukan dengan lokasi instruksi ini dalam object
program terassemble. Karenanya, assembler barns mencatat alamatalamat
yang menghasilkan kode mesin untuk instruksi yang berurutan. Misalnya,
nama START dan LOOP masingmasing akan menetapkan nilai 100 dan 112.
3
4
2.2
Studi Kasus
Sesuai tugas yang diberikan oleh dosen yang bersangkutan untuk
pembuatan sebuah program dalam Bahasa Assembly penyusun akan
menjelaskan tentang apa yang ada dalam program yang telah dibuat.
2.2.1
Menampilkan Nim dan Nama
1. Source Code
name "Nim_dan_Nama"
org 100h
jmp start
msg
;jump over data declaration
db
start:
"10115055 - Iqbal Syarifudin Lutfie $"
mov dx,offset msg ;load offset of msg into
dx.
mov
ah, 09h
;print function is 9.
int
21h
;do it
mov
ah, 0
int
16h
;wait for any key....
ret ; return to operating system.
2. Keterangan
name
- Perintah ini untuk memasukkan nama program setelah
program dibuat.
org
100h
- Perintah ini digunakan untuk memberitahukan
assembler supaya program pada saat dijalankan(diload ke
memory) ditaruh mulai pada offset ke 100h(256) byte. Dapat
dikatakan juga bahwa kita menyediakan 100h byte kosong pada
saat program dijalankan.
5
- Perintah ini digunakan untuk melompat menuju
jmp start
tempat yang ditunjukkan oleh perintah JUMP. Dimana dalam
studi kasus ini digunakan untuk melompat menuju “start”.
msg db "10115055 - Iqbal Syarifudin Lutfie $"
– db
merupakan salah satu tipe variabel , kepanjangan dari Define Byte
. msg merupakan nama suatu variabel, terdiri dari kombinasi dari
alphanumerik, diawali dengan huruf. Mungkin juga tidak bernama
(maka hanya punya alamat saja). "10115055
Syarifudin Lutfie $"
merupakan suatu
-
Iqbal
value (nilai) dari
variabel msg tersebut, yaitu berupa nilai numeric yang didukung
oleh system nilai(hexadecimal, binary, atau decimal), atau simbol
"?" untuk variable yang tidak diinisialisasikan.
start
- Bagian dari struktur program untuk membantu proses
berjalannya suatu program.
mov
- Perintah mengutip operan ke dua (source) ke operand
pertama (destination).
mov dx,offset msg
- Perintah memindahkan offset menuju
lokasi dx.
mov ah, 09h
int
21h
- Memberikan perintah pada interrupt 21h agar
menampilkan pesan di layar.
mov ah, 0
int
16h
- Memberikan perintah pada interrupt 16h untuk
menahan layar hingga tombol pada keyboard di tekan (keluar
program).
ret
- Perintah kembali ke operating system (os).
6
3. Tampilan Layar
Gambar 2.1 Tampilan layar studi kasus : menampilkan nim dan nama
2.2.2
Penjumlahan Dua Bilangan
1. Source Code
INCLUDE 'emu8086.inc'
name 'penjumlahan dua bilangan'
org 100h
JMP mulai
psn1 DB "Menu Penjumlahan",13,10,'$'
psn2 DB "================",13,10,13,10,'$'
psn3 DB "Masukan Bilangan 1 : 50 $"
psn4 DB "Masukan Bilangan 2 : 55 $"
7
psnhasil DB "Hasilnya adalah : $"
bil1 DW 50
;50 adalah bagian dari nim 1011 50 55
bil2 DW 55
;55 adalah bagian dari nim 1011 50 55
hasil DW ?
mulai:
lea dx, psn1
mov ah, 9
int 21h
lea dx, psn2
mov ah, 9
int 21h
lea dx, psn3
mov ah, 9
int 21h
PUTC 13
PUTC 10
lea dx, psn4
mov ah, 9
int 21h
mov ax,bil1
mov bx,bil2
add ax,bx
push ax
PUTC 13
PUTC 10
8
lea dx, psnhasil
mov ah,9
int 21h
pop ax
mov hasil, ax
call PRINT_NUM
mov ah,0
int 16h
ret
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
END
2. Keterangan
INCLUDE 'emu8086.inc' -
Perintah memanggil fungsi/library
untuk di gunakan pada sebuah program, dengan nama file yang di
panggila
adalah
‘emu8086.inc’,
file
‘emu8086.inc’
sebelumnya sudah berada dalam folder inc .
name –
Perintah ini untuk memasukkan nama program setelah
program dibuat.
org
100h
-
Perintah ini digunakan untuk memberitahukan
assembler supaya program menyediakan 100h byte kosong pada
saat program dijalankan.
9
JMP mulai -
Perintah ini digunakan untuk melompat menuju
tempat yang ditunjukkan oleh perintah JUMP. Dimana dalam
studi kasus ini digunakan untuk melompat menuju “mulai”.
psn1 DB "Menu Penjumlahan",13,10,'$'
psn2 DB "================",13,10,13,10,'$'
psn3 DB "Masukan Bilangan 1 : 50 $"
psn4 DB "Masukan Bilangan 2 : 55 $"
psnhasil DB "Hasilnya adalah : $"
-
db
merupakan salah satu tipe variabel , kepanjangan dari
Define Byte .
-
psn1, psn2, psn3, psn4, psnhasil
merupakan nama
suatu variabel, terdiri dari kombinasi dari alphanumerik,
diawali dengan huruf. Mungkin juga tidak bernama (maka
hanya punya alamat saja).
-
"Menu
variabel
Penjumlahan",13,10,'$'
psn1,
merupakan
"================",13,10,13,10,'$'
nilai
dari
Bilangan 1 : 50 $"
"Masukan
merupakan nilai dari
Bilangan
variabel
psn2,
"Masukan
merupakan nilai dari variabel psn3,
2
:
55
$"
merupakan nilai dari
variabel psn4,"Hasilnya adalah : $" merupakan nilai
dari psnhasil.
dw - dw
merupakan salah satu tipe variabel , kepanjangan dari
Define Word .
bil1 DW 50 –
bil1
Perintah menyisipkan nilai 50 ke dalam variabel
10
Perintah menyisipkan nilai 50 ke dalam variabel
bil2 DW 55 –
bil2
hasil DW ? –
symbol ? untuk memberitahukan bahwa variabel
hasil nilainya tidak diinisialisasikan
lea dx, psn1
mov ah, 9
int 21h
-
lea dx, psn1
- Perintah untuk mengambil alamat efektif
dari variabel psn1
- mov ah, 9 - Perintah untuk cetak kalimat
- int 21h - Perintah cetak ke layar
lea dx, psn2
lea dx, psn2
- Perintah untuk mengambil alamat efektif dari
variabel psn2
lea dx, psn3
lea dx, psn3
- Perintah untuk mengambil alamat efektif dari
variabel psn3
PUTC 13
PUTC 10
PUTC -
digunakan untuk mencetak sebuah karakter ASCII pada
posisi kursor
lea dx, psn4
lea dx, psn4 -
Perintah untuk mengambil alamat efektif dari
variabel psn4
mov ax,bil1 –
ax
Perintah memindahkan variabel bil1 ke alamat
11
mov bx,bil2 -
Perintah memindahkan variabel bil2 ke alamat
bx
add ax,bx -
menambah operand ke dua bx ke operand pertama
ax.
push ax –
Perintah menyimpan nilai dalam alamat ax dalam
stack .
lea dx, psnhasil -
Perintah untuk mengambil alamat efektif
dari variabel psnhasil
pop ax –
Perintah mengambil nilai dalam alamat ax dalam
stack
mov hasil, ax –
Perintah memindahkan nilai dari alamat ax ke
variabel hasil.
call PRINT_NUM
- call – Digunakan untuk memanggil prosedur , dimana disini
yang di panggil adalah prosedur “PRINT_NUM”.
- PRINT_NUM - Prosedur mencetak angka signed dalam register
ax.
mov ah,0
int 16h
- Memberikan perintah pada interrupt 16h untuk menahan layar
hingga tombol pada keyboard di tekan (keluar program).
ret
- Perintah kembali ke operating system (os).
DEFINE_PRINT_NUM
– Deklarasi dari prosedur PRINT_NUM
DEFINE_PRINT_NUM_UNS
–
Deklarasi
PRINT_NUM_UNS
END –
Direktif untuk menghentikan kompiler.
dari
prosedur
12
3. Tampilan Layar
Gambar 2.2
Tampilan layar studi kasus : menghitung dua buah bilangan dari
empat angka belakang NIM
BAB III
PENUTUP
3.1
Kesimpulan
Bahasa assembly merupakan bahasa aras bawah, dimana merupakan
bahasa mesin, sangat banyak keuntungan yang kita dapatkan dari belajar
bahasa ini, diantaranya kita bisa belajar untuk mengakses hardware secara
langsung,disamping ukuran file hasil kompilasi juga kecil
Kelebihan Bahasa Assembly: Ketika di-compile lebih kecil ukuran,
Lebih efisien/hemat memori,Lebih cepat dieksekusi
Kesulitan Bahasa Assembly: Dalam melakukan suatu pekerjaan, baris
program relatif lebih panjang dibanding bahasa tingkat tinggi, Relatif lebih
sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak, Lebih
sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis
13
DAFTAR PUSTAKA
S’to.2001. Pemrograman Dengan Bahasa Assembly Edisi Online Versi 1.0 :
http://www.jasakom.com
Fadlisyah,S.Si. Bahasa Rakitan.Yogyakarta:Andi.
.Pemrograman Bahasa Assembly :
http://dinus.ac.id/repository/docs/ajar/bahasa_assembly.pdf
iv
STUDI KASUS PROGRAM ASSEMBLER MENGGUNAKAN
APLIKASI EMU8086
Disusun untuk memenuhi salah satu tugas mata kuliah Organisasi dan Arsitektur
Komputer
Dosen:
EKO BUDI SETIAWAN, S.KOM., M.T.
Disusun Oleh :
IQBAL SYARIFUDIN LUTFIE
10115055
FAKULTAS TEKNIK DAN ILMU KOMPUTER
JURUSAN TEKNIK INFORMATIKA
UNIVERSITAR KOMPUTER INDONESIA
2017
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa atas segala rahmat-Nya sehingga
makalah ini dapat tersusun hingga selesai . Tidak lupa penyusun juga mengucapkan
banyak terimakasih atas bantuan dari pihak yang telah berkontribusi dengan
memberikan sumbangan baik materi maupun pikirannya.
Besar harapan semoga makalah ini dapat menambah pengetahuan dan
pengalaman bagi para pembaca, Untuk ke depannya dapat memperbaiki bentuk
maupun menambah isi makalah agar menjadi lebih baik lagi.
Karena keterbatasan pengetahuan maupun pengalaman, Penyusun yakin
masih banyak kekurangan dalam makalah ini, Oleh karena itu kami sangat
mengharapkan saran dan kritik yang membangun dari pembaca demi kesempurnaan
makalah ini.
Bandung,
Januari 2017
Penyusun
i
DAFTAR ISI
Hal
KATA PENGANTAR ........................................................................................
i
DAFTAR ISI .......................................................................................................
ii
DAFTAR GAMBAR ..........................................................................................
iii
BAB I
PENDAHULUAN
1.1 Latar Belakang .....................................................................................
1
1.2 Perumusan Masalah .............................................................................
1
1.3 Manfaat ................................................................................................
2
BAB II
PEMBAHASAN
2.1 Assembly dan Eksekusi Program .........................................................
3
2.2 Studi Kasus ..........................................................................................
4
2.2.1 Menampilkan Nim dan Nama .........................................................
4
1 Source Code ................................................................................
4
2 Keterangan ..................................................................................
4
3 Tampilan Layar ..........................................................................
6
2.2.2 Penjumlahan Dua Bilangan .............................................................
6
1 Source Code ................................................................................
6
2 Keterangan ..................................................................................
8
3 Tampilan Layar ..........................................................................
12
BAB III PENUTUP
3.1 Kesimpulan ..........................................................................................
13
DAFTAR PUSTAKA .........................................................................................
iv
ii
DAFTAR GAMBAR
Hal
Gambar 2.1 Tampilan layar studi kasus : menampilkan nim dan nama ............... 6
Gambar 2.2 Tampilan layar studi kasus : menghitung dua buah bilangan dari empat
angka belakang NIM ........................................................................ 12
iii
BAB I
PENDAHULUAN
1.1
Latar Belakang
Bahasa pemrograman assembly adalah bahasa pemrograman dasar
yang pertamadikenal untuk menghubungkan programmer dengan mesin.
Sifatnya yang mendekati bahasamesin memberikan keistimewaan tersendiri,
yaitu kecepatan akses. secara umum, semakindekat bahasa pemrograman
dengan mesin, semakin tinggi pula kecepatannya. Pemrograman bahasa
assembly menawarkan kelebihan ini. Walaupun saat ini sudah banyak
bahasa pemrograman
tingkat
tinggi
(high
level
language),
bahasa
pemrograman assembly masih tetap banyak digunakan. Makalah ini
membahas bahasa pemrograman assembly dari sesuai aplikasinya (studi
kasus).
1.2
Perumusan Masalah
Berdasarkan latar belakang yang telah dipaparkan di atas, dapat
dirumuskan masalah sebagai berikut :
1. Mengenal dan memahami fungsi dasar dalam Bahasa Assembly.
2. Mengerti dan memahami jalannya program dalam Bahasa Assembly.
3. Studi Kasus Program Assembler
1
2
1.3
Manfaat
1. Dapat menambah wawasan dan ilmu tentang Bahasa pemrograman
Assembly.
2. Dapat mengenal sintaks-sintaks Bahasa Assembly.
3. Dapat mempelajari dasar-dasar Bahasa Assembly.
3
BAB II
PEMBAHASAN
2.1
Assembly dan Eksekusi Program
Source program yang ditulis dalam bahasa assembly harus diassemble
menjadi object program bahasa mesin sebelum dapat dieksekusi. Hal ini
dilakukan oleh program assembler, yang mengganti semua simbol untuk
mode operasi dan penggalamatan dengan kode biner yang digunakaa dalam
instruksi mesin, dan mengganti semua nama dan label dengan nilai
sebenarnya.
Assembler menetapkan alamat untuk instruksi dan blok data, mulai
dari alamat yang ada dalam asembler directive ORIGIN. Juga menyisipkan
konstanta yang dapat dinyatakan dalam perintah DATAWORD dan ruang
memori cadangan sebagaimana yang diminta oleh perintah RESERVE.
Bagian utama proses assembly menetapkan nilainilai untuk menggantikan
namanama tersebut. Pada beberapa kasus, dimana nilai suatu nama ditetapkan
oleh directive EQU, maka ini merupakan tugas langsung. Pada kasus lain,
dimana suatu nama didefinisikan dalam field Label suatu instruksi, maka nilai
yang diwakili nama ini ditentukan dengan lokasi instruksi ini dalam object
program terassemble. Karenanya, assembler barns mencatat alamatalamat
yang menghasilkan kode mesin untuk instruksi yang berurutan. Misalnya,
nama START dan LOOP masingmasing akan menetapkan nilai 100 dan 112.
3
4
2.2
Studi Kasus
Sesuai tugas yang diberikan oleh dosen yang bersangkutan untuk
pembuatan sebuah program dalam Bahasa Assembly penyusun akan
menjelaskan tentang apa yang ada dalam program yang telah dibuat.
2.2.1
Menampilkan Nim dan Nama
1. Source Code
name "Nim_dan_Nama"
org 100h
jmp start
msg
;jump over data declaration
db
start:
"10115055 - Iqbal Syarifudin Lutfie $"
mov dx,offset msg ;load offset of msg into
dx.
mov
ah, 09h
;print function is 9.
int
21h
;do it
mov
ah, 0
int
16h
;wait for any key....
ret ; return to operating system.
2. Keterangan
name
- Perintah ini untuk memasukkan nama program setelah
program dibuat.
org
100h
- Perintah ini digunakan untuk memberitahukan
assembler supaya program pada saat dijalankan(diload ke
memory) ditaruh mulai pada offset ke 100h(256) byte. Dapat
dikatakan juga bahwa kita menyediakan 100h byte kosong pada
saat program dijalankan.
5
- Perintah ini digunakan untuk melompat menuju
jmp start
tempat yang ditunjukkan oleh perintah JUMP. Dimana dalam
studi kasus ini digunakan untuk melompat menuju “start”.
msg db "10115055 - Iqbal Syarifudin Lutfie $"
– db
merupakan salah satu tipe variabel , kepanjangan dari Define Byte
. msg merupakan nama suatu variabel, terdiri dari kombinasi dari
alphanumerik, diawali dengan huruf. Mungkin juga tidak bernama
(maka hanya punya alamat saja). "10115055
Syarifudin Lutfie $"
merupakan suatu
-
Iqbal
value (nilai) dari
variabel msg tersebut, yaitu berupa nilai numeric yang didukung
oleh system nilai(hexadecimal, binary, atau decimal), atau simbol
"?" untuk variable yang tidak diinisialisasikan.
start
- Bagian dari struktur program untuk membantu proses
berjalannya suatu program.
mov
- Perintah mengutip operan ke dua (source) ke operand
pertama (destination).
mov dx,offset msg
- Perintah memindahkan offset menuju
lokasi dx.
mov ah, 09h
int
21h
- Memberikan perintah pada interrupt 21h agar
menampilkan pesan di layar.
mov ah, 0
int
16h
- Memberikan perintah pada interrupt 16h untuk
menahan layar hingga tombol pada keyboard di tekan (keluar
program).
ret
- Perintah kembali ke operating system (os).
6
3. Tampilan Layar
Gambar 2.1 Tampilan layar studi kasus : menampilkan nim dan nama
2.2.2
Penjumlahan Dua Bilangan
1. Source Code
INCLUDE 'emu8086.inc'
name 'penjumlahan dua bilangan'
org 100h
JMP mulai
psn1 DB "Menu Penjumlahan",13,10,'$'
psn2 DB "================",13,10,13,10,'$'
psn3 DB "Masukan Bilangan 1 : 50 $"
psn4 DB "Masukan Bilangan 2 : 55 $"
7
psnhasil DB "Hasilnya adalah : $"
bil1 DW 50
;50 adalah bagian dari nim 1011 50 55
bil2 DW 55
;55 adalah bagian dari nim 1011 50 55
hasil DW ?
mulai:
lea dx, psn1
mov ah, 9
int 21h
lea dx, psn2
mov ah, 9
int 21h
lea dx, psn3
mov ah, 9
int 21h
PUTC 13
PUTC 10
lea dx, psn4
mov ah, 9
int 21h
mov ax,bil1
mov bx,bil2
add ax,bx
push ax
PUTC 13
PUTC 10
8
lea dx, psnhasil
mov ah,9
int 21h
pop ax
mov hasil, ax
call PRINT_NUM
mov ah,0
int 16h
ret
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
END
2. Keterangan
INCLUDE 'emu8086.inc' -
Perintah memanggil fungsi/library
untuk di gunakan pada sebuah program, dengan nama file yang di
panggila
adalah
‘emu8086.inc’,
file
‘emu8086.inc’
sebelumnya sudah berada dalam folder inc .
name –
Perintah ini untuk memasukkan nama program setelah
program dibuat.
org
100h
-
Perintah ini digunakan untuk memberitahukan
assembler supaya program menyediakan 100h byte kosong pada
saat program dijalankan.
9
JMP mulai -
Perintah ini digunakan untuk melompat menuju
tempat yang ditunjukkan oleh perintah JUMP. Dimana dalam
studi kasus ini digunakan untuk melompat menuju “mulai”.
psn1 DB "Menu Penjumlahan",13,10,'$'
psn2 DB "================",13,10,13,10,'$'
psn3 DB "Masukan Bilangan 1 : 50 $"
psn4 DB "Masukan Bilangan 2 : 55 $"
psnhasil DB "Hasilnya adalah : $"
-
db
merupakan salah satu tipe variabel , kepanjangan dari
Define Byte .
-
psn1, psn2, psn3, psn4, psnhasil
merupakan nama
suatu variabel, terdiri dari kombinasi dari alphanumerik,
diawali dengan huruf. Mungkin juga tidak bernama (maka
hanya punya alamat saja).
-
"Menu
variabel
Penjumlahan",13,10,'$'
psn1,
merupakan
"================",13,10,13,10,'$'
nilai
dari
Bilangan 1 : 50 $"
"Masukan
merupakan nilai dari
Bilangan
variabel
psn2,
"Masukan
merupakan nilai dari variabel psn3,
2
:
55
$"
merupakan nilai dari
variabel psn4,"Hasilnya adalah : $" merupakan nilai
dari psnhasil.
dw - dw
merupakan salah satu tipe variabel , kepanjangan dari
Define Word .
bil1 DW 50 –
bil1
Perintah menyisipkan nilai 50 ke dalam variabel
10
Perintah menyisipkan nilai 50 ke dalam variabel
bil2 DW 55 –
bil2
hasil DW ? –
symbol ? untuk memberitahukan bahwa variabel
hasil nilainya tidak diinisialisasikan
lea dx, psn1
mov ah, 9
int 21h
-
lea dx, psn1
- Perintah untuk mengambil alamat efektif
dari variabel psn1
- mov ah, 9 - Perintah untuk cetak kalimat
- int 21h - Perintah cetak ke layar
lea dx, psn2
lea dx, psn2
- Perintah untuk mengambil alamat efektif dari
variabel psn2
lea dx, psn3
lea dx, psn3
- Perintah untuk mengambil alamat efektif dari
variabel psn3
PUTC 13
PUTC 10
PUTC -
digunakan untuk mencetak sebuah karakter ASCII pada
posisi kursor
lea dx, psn4
lea dx, psn4 -
Perintah untuk mengambil alamat efektif dari
variabel psn4
mov ax,bil1 –
ax
Perintah memindahkan variabel bil1 ke alamat
11
mov bx,bil2 -
Perintah memindahkan variabel bil2 ke alamat
bx
add ax,bx -
menambah operand ke dua bx ke operand pertama
ax.
push ax –
Perintah menyimpan nilai dalam alamat ax dalam
stack .
lea dx, psnhasil -
Perintah untuk mengambil alamat efektif
dari variabel psnhasil
pop ax –
Perintah mengambil nilai dalam alamat ax dalam
stack
mov hasil, ax –
Perintah memindahkan nilai dari alamat ax ke
variabel hasil.
call PRINT_NUM
- call – Digunakan untuk memanggil prosedur , dimana disini
yang di panggil adalah prosedur “PRINT_NUM”.
- PRINT_NUM - Prosedur mencetak angka signed dalam register
ax.
mov ah,0
int 16h
- Memberikan perintah pada interrupt 16h untuk menahan layar
hingga tombol pada keyboard di tekan (keluar program).
ret
- Perintah kembali ke operating system (os).
DEFINE_PRINT_NUM
– Deklarasi dari prosedur PRINT_NUM
DEFINE_PRINT_NUM_UNS
–
Deklarasi
PRINT_NUM_UNS
END –
Direktif untuk menghentikan kompiler.
dari
prosedur
12
3. Tampilan Layar
Gambar 2.2
Tampilan layar studi kasus : menghitung dua buah bilangan dari
empat angka belakang NIM
BAB III
PENUTUP
3.1
Kesimpulan
Bahasa assembly merupakan bahasa aras bawah, dimana merupakan
bahasa mesin, sangat banyak keuntungan yang kita dapatkan dari belajar
bahasa ini, diantaranya kita bisa belajar untuk mengakses hardware secara
langsung,disamping ukuran file hasil kompilasi juga kecil
Kelebihan Bahasa Assembly: Ketika di-compile lebih kecil ukuran,
Lebih efisien/hemat memori,Lebih cepat dieksekusi
Kesulitan Bahasa Assembly: Dalam melakukan suatu pekerjaan, baris
program relatif lebih panjang dibanding bahasa tingkat tinggi, Relatif lebih
sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak, Lebih
sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis
13
DAFTAR PUSTAKA
S’to.2001. Pemrograman Dengan Bahasa Assembly Edisi Online Versi 1.0 :
http://www.jasakom.com
Fadlisyah,S.Si. Bahasa Rakitan.Yogyakarta:Andi.
.Pemrograman Bahasa Assembly :
http://dinus.ac.id/repository/docs/ajar/bahasa_assembly.pdf
iv